A few functions that would be useful:
A SetCanSnipe function that sets the same as canSnipe = true/false in the ODF, on the handle. This would negate the need for modders to make special, non snipe-able odfs for SP missions.
// Sets if a handle can be sniped, -1 = Auto-determine from type (default, tracked/walkers/flying not snipe-able), 0 = Not snipe-able, 1 = snipe-able.
DLLEXPORT void DLLAPI SetCanSnipe(Handle me, int CanSnipe = -1);
A version of Damage/DamageF that takes a handle for the causer. The current method, if something is killed by this in MP, it says killed by (AI Unit) in chat. Requesting a way to assign an owner to the damage the way SelfDamage does.
DLLEXPORT void Damage(Handle him, Handle me, long Amt);
Functions to Get/Set the spin rate of vehicles.
// Gets the omega rate of a vehicle/person.
DLLEXPORT vector DLLAPI GetOmega(Handle h);
// Sets the handle's omega rate to the specified vector.
DLLEXPORT void DLLAPI SetOmega(Handle h, Vector omega);
Also, some more functions that quarry basic types like IsPerson() might be more efficient then manually using GetObjClass and stricmp_s.
// Returns true if it's a CraftClass.
DLLEXPORT bool DLLAPI IsVehicle(Handle me);
// Returns true if it's a BuildingClass.
DLLEXPORT bool DLLAPI IsBuilding(Handle me);
// Returns true if it's a PowerupClass.
DLLEXPORT bool DLLAPI IsPowerup(Handle me);