The function accepts a form object, however you can't make a property to a form object
That is not the whole story.
Assume you have a line in your script such as
Form Property myEditorID Auto
If you have added an new form with myEditorID, then using the auto-fill option in the CK it will assign it without problem.
However, if the EditorID does not exist, then the CK selection window does not list the available forms to assign.
Edit: auto-fill does not always work.
So this is a minor bug with the CK.
Workaround simple example.
Assume you have a script that you want to apply to many of your base items to give the player an item when Activated.
ScriptName MyGiverScript Extends ObjectReferenceForm Property myEditorID01 AutoEvent OnActivate(ObjectReference akActionRef) akActionRef.AddItem(myEditorID01)EndEvent
With one item, as long as you had a base Object called myEditorID01 then auto-fill will work.
But if you had to repeat this on several base objects, you'd need to write a new script with a change of property name for each item.
A workaround exists using TESVEdit.
Add the same script to your itemgiver objects.
Use the CK to autofill the property.
Save and close.
Open TESVEdit and find one of your itemgiver objects.
Select the VMAD subrecord, and open it with the 'Hex Edit' button.
You'll notice the last 4 bytes contain the FormID of myEditorID01, so you can edit this to other base form objects.
So in theory there should be no problem writing one script that can handle multiple types of Form, without the suggested wiki solution of creating different property types for MiscItem Ingredient, etc...
I don't know what all the bytes represent in the VMAD subrecord, so more research is needed here.