Difference between revisions of "Modding Etiquette"

1,963 bytes added ,  13:21, 24 December 2010
→‎Balance Weapons to MOBS: Defined what MOBS was.
imported>Wrye
imported>Bruneauinfo
(→‎Balance Weapons to MOBS: Defined what MOBS was.)
 
(3 intermediate revisions by 2 users not shown)
Line 37: Line 37:
* Name the archive after the name of the package and include the version number. (E.g. "Wrye Morph 07.7z".)
* Name the archive after the name of the package and include the version number. (E.g. "Wrye Morph 07.7z".)
** Don't use generic names (e.g. NOT "Manual Install.7z").
** Don't use generic names (e.g. NOT "Manual Install.7z").
** Don't start with numbers, underscores or arbirary symbols (e.g. NOT "_My Cool Mod.7z" and NOT "1_Cool Mod.7z").
** Don't start with numbers, underscores or arbitrary symbols (e.g. NOT "_My Cool Mod.7z" and NOT "1_Cool Mod.7z").
** Don't end the archive name lie "-1234.7z". TesNexus appends package id numbers to uploaded archives, which Bain uses for it's "Open at TesNexus" command. Hence a number which looks like a TesNexus id, but is not will resul in Bain opening the wrong package at TesNexus.
** Don't end the archive name like "-1234.7z". TesNexus appends package id numbers to uploaded archives, which Bain uses for it's "Open at TesNexus" command. Hence a number which looks like a TesNexus id, but is not will result in Bain opening the wrong package at TesNexus.
** Don't use ' - ' in the name. Mod sites will convert such names to "Yadda_-_Yadda.yz", which is unattractive. Either skip the dash (Yadda_Yadda.7z) or skip the spaces (Yadda-Yadda.7z).
** Don't use ' - ' in the name. Mod sites will convert such names to "Yadda_-_Yadda.yz", which is unattractive. Either skip the dash (Yadda_Yadda.7z) or skip the spaces (Yadda-Yadda.7z).
* When including version number in mod name, use either no punctuation or use an underscore. E.g. for version 1.31, use "131" or "1_31". The reason for this is that some upload sites automatically remove non-extension '.'s in the archive name.
* When including version number in mod name, use either no punctuation or use an underscore. E.g. for version 1.31, use "131" or "1_31". The reason for this is that some upload sites automatically remove non-extension '.'s in the archive name.
Line 54: Line 54:


=== Archive Structure ===
=== Archive Structure ===
There are currently two main mod installers: OBMM and [[Bain]]. Many (or rather most) users install mods manually. It's possible to create archives that work well with all three installation methods (OBMM, Bain, Manual). For simple packages, this is fairly easy. For complicated packages (with optional and/or alterate files), triple mode archives are possible, though a bit more complicated to create.
There are currently two main mod installers: OBMM and [[Bain]]. Many (or rather most) users install mods manually. It's possible to create archives that work well with all three installation methods (OBMM, Bain, Manual). For simple packages, this is fairly easy. For complicated packages (with optional and/or alternate files), triple mode archives are possible, though a bit more complicated to create.


For '''simple packages''' (with no optional/alternate files), the top level of the archive should correspond to the top level of the Oblivion\Data directory.  
For '''simple packages''' (with no optional/alternate files), the top level of the archive should correspond to the top level of the Oblivion\Data directory.  
Line 104: Line 104:
** Use quick exits from '''GameMode''' block scripts when possible. I.e., rather than letting the script fall through several lengthy '''If''' statements, instead do a single test at the top to see if rest of script should be skipped, and if so, return.
** Use quick exits from '''GameMode''' block scripts when possible. I.e., rather than letting the script fall through several lengthy '''If''' statements, instead do a single test at the top to see if rest of script should be skipped, and if so, return.
** When initializing the state of multiple objects (e.g., setting three actor references to attack player under a certain condition), use a single script on one object which sets all, rather than scripting each of them separately.  
** When initializing the state of multiple objects (e.g., setting three actor references to attack player under a certain condition), use a single script on one object which sets all, rather than scripting each of them separately.  
* Avoid [[Script_Processing#Remote_Ref_Heartbeat|Remote Ref Heartbeat]] -- Do '''not''' set local variables in every frame of persistent ref scripts.


* Avoid using [[PlaceAtMe]] to create new copies of an object when you could simply use [[MoveTo]] on an existing object. Apparently, placed items are never deleted from the world and if used enough can cause savegame size to expand significantly. (E.g., earlier versions of Harvest Flora had this problem.)
* Avoid using [[PlaceAtMe]] to create new copies of an object when you could simply use [[MoveTo]] on an existing object. Apparently, placed items are never deleted from the world and if used enough can cause savegame size to expand significantly. (E.g., earlier versions of Harvest Flora had this problem.)
== Compatibility ==
*Don't alter objects that exist in Oblivion.esm unless your mod is specifically designed to alter them. Examples of bad alterations include changing the contents of a chest, the destination of a load door, the properties of objects, adding a script to an object, or changing a magic effect. Changes like this will affect all instances of that object in the game. To avoid that, copy the existing object with a new ObjectID before making any changes.
* Keep your mod clean. Information on cleaning mods can be found in the [[Mod Cleaning Tutorial]].
* Keep any new dialogue clean. Information on unclean dialogue can be found in the [[Unclean Dialogue|Unclean Dialogue Tutorial]].
* Don't create self-centered dialogue that adds topics or greetings to all NPCs in the world, without a means to avoid them. Another modder might want to create a NPC that knows absolutely nothing about current events or doesn't care about them. If you want to add generic topics to all NPCs, add them to the quest "'''Generic'''" or make your own quest and test for "'''[[GetIsPlayableRace]] == 1'''" and "'''[[GetInFaction]] ForgottenOnesFaction == 0'''".
* Don't click on '''Recompile All''' in the Script Edit window of the TES Construction Set.  Doing so includes all of the scripts from currently open TES Files in your mod making it bigger in file size and possibly interfering with somebody else's mod.
* Avoid making any changes to the '''Magic Effects''' menu since your changes could interfere with a new expansion or could conflict with another mod altering the same '''Magic Effect'''. Even if that particular '''Magic Effect''' seems to be unused, it may have a planned use at a future date.


== Design ==
== Design ==
Line 113: Line 128:
== Integration ==
== Integration ==
=== Balance Weapons to MOBS ===
=== Balance Weapons to MOBS ===
If you're releasing a weapon, try to fit the weapon to MOBS.
If you're releasing a weapon, try to fit the weapon to MOBS (''Medieval Oblivion Equipment Balance System - an existing and popular weapons balance mod.'')


=== Use Standardized Option Setting ===
=== Use Standardized Option Setting ===
Anonymous user