Asterisk's Plugin Features - Ezekial711/MonsterHunterWorldModding GitHub Wiki
For some of the features listed here, it's necessary to understand the documentation notes as some features deal with controlling the "special" behaviour of some aspects of mod3.
Property Transference
To transfer properties between meshes make a copy of the mesh who's properties you wish to copy. Delete the vertices in the copy (Select Mode Vertices > A > Del). Join the mesh you want to receive the properties with the empty mesh (Click on the Target Mesh in the explorer sidebar > Shift click on the Empty Mesh on the explorer sidebar Control+J).
Skeleton Editing
Skeletons can be freely editing, moving the nodes as necessary. It's possible to add bones by using the "Parent To" command. It's possible to establish a symmetry relationship between bones on two sides of an axis of symmetry by creating a modifier "CHILD_OF" and setting it to the desired opposite end as target. Bones should only have a single "CHILD_OF" constraint as the mod3 format allows only one symmetric pair.
Split Weight and Split Slash Notation
Mod3 allows a vertex to have the same bone multiple times on it's weight array, functionally splitting a weight. It's unknown why it allows this. It's possible to label groups as BONE_NAME(BONE_INDEX,WEIGHT_REPETITION) so that one can have for example Bone.(001,0), Bone.(001,1), Bone.(001,2) this will all be read by the exporter as Bone.001 but kept separate when writing. This notation works by concatenating so Bone.001(,0) is identical to Bone.(001,0), and it's possible to use it even when renaming bones. LArm002(,0) and LArm00(2,0) and LArm(002,0) will all be tied to the bone named Arm002, and kept split.
Explicit Negatives
Additionally the mod3 format doesn't store the last vertex (of 4 it only stores 3, of 8 it stores 7), the last weight is calculated as 1-sum(weights). This means the last weight is "special". Split weight notation allows assigning a bone specifically to this position by using a WEIGHT_REPETITION value of -1. As there can only be 1 negative weight per vertex, only 1 of a vertex's weights can be from a group with explicit negative. LArm002(,-1) for example would be the vertex weight group that if found on a vertex assigns it to it's last weight.
Split Slash Notation
Additionally, with the discovery of non-final weights ordering being relevant to animation, Split Weight Notation can be extended into Split Slash Notation, under this scheme the last entry on the parenthetical section can be expanded with a slash to indicate the priority of the weight on the vertices internal ordering of the weight. For example Bone.(001,0/0), Bone.(002,1/2), Bone.(004,2/1) would ensure that the vertex's weight groups result in the exact ordering of [001,004,002]. Explicit negatives take precedence over Split Slash indexes however (the import will however always assign the negative index to the correct position, but it's not necessary to do this, the negative value will override the explicit slash index).
Split Normal Editing
By default the exporter will export split normals which can be edit through tools like Blend4Web and Y.A.V.N.E.. If the option is unset it will use blender's autonormals.
Material Editing
Simply writing the material on the meshpart's custom property ensures that it's added to the file's header and correctly indexed at mesh level.