Thank you for your reply Comiconomist , thats really a good point. I think there is a way I do not even need to use F4SE in developing time, it should exists in its runtime after I installed F4SE and run f4se_loader.exe. And for script I intend to using reflection: givenMods = givenWeaponRef.CallFunction( "GetAllMods", new Var[0]) But sadly it runs failed with error "Failed to call member function GetAllMods on [ObjectReference <Item 6 in container (190055D0)>] - function name likely invalid, or object incorrect type". Still need to figure out how to using F4SE to developing.