How to add nonstandard residue or cofactor in charmm36 force field for protein topol.top

I just answered a similar question (with recommended links). See Topology creation for non-standard amino acid residues.