// [rdInst v1.24] Finds and returns the UInstancedStaticMeshComponent assigned to the StaticMesh
UInstancedStaticMeshComponent* rdGetInstanceGen(UStaticMesh* mesh,bool create=true);
// [rdInst v1.00] Finds and returns the UHierarchicalInstancedStaticMeshComponent assigned to the StaticMesh
UHierarchicalInstancedStaticMeshComponent* rdGetHInstanceGen(UStaticMesh* mesh,bool create=true);
// [rdInst v1.00] Returns the rdActor that owns the Instance or a nullptr if the passed in component is not an HISMC or index not valid
ArdActor* rdGetrdActorFromInstanceIndex(UPrimitiveComponent* comp,int32 index);
// [rdInst v1.35] Returns the rdActor that owns the Instance or a nullptr if the passed in component is not an HISMC or index not valid
void rdGetrdActorFromInstanceIndexForPrefab(UPrimitiveComponent* comp,int32 index,AActor*& actor);
// [rdInst v1.00] Returns the last index created of the passed in StaticMesh. If none exist, -1 is returned (note: C++ only)
int32 rdGetLastInstanceIndex(const AActor* instOwner,UStaticMesh* mesh);
// [rdInst v1.00] Goes through and Counts all Instances of all StaticMeshes in this BaseActor
void rdCalcInstanceCounts();
// [rdInst v1.00] Recreates all the ISMs and HISMCs in this BaseActor
void rdRecreateInstances();
// [rdInst v1.00] Sets the Instance Settings (eg shadows) contained in the StaticMesh in the HISMC (note: C++ only)
void SetHISMCdata(UStaticMesh* mesh,UInstancedStaticMeshComponent* hismc);
// [rdInst v1.36] Finds the ISMC for the StaticMesh in the external volume e.g. PCG volume (note: C++ only)
UInstancedStaticMeshComponent* FindISMCforMeshInVolume(AActor* volume,const UStaticMesh* mesh);
// [rdInst v1.24] Finds the Attached ISMC for the StaticMesh (referenced by Name) (note: C++ only)
UInstancedStaticMeshComponent* FindISMCforMesh(const FName& name);
// [rdInst v1.00] Finds the Attached HISMC for the StaticMesh (referenced by Name) (note: C++ only)
UHierarchicalInstancedStaticMeshComponent* FindHISMCforMesh(const FName& name);
// [rdInst v1.41] Converts Actors in the level to ISMs and Hides the Actors
void rdConvertAutoISMs();
// [rdInst v1.41] Reverts Actors in the level from ISMs and Shows the Actors
void rdRevertFromAutoISMs();
// [rdInst v1.42] Returns an Array of all ISMCs used
TArray<UInstancedStaticMeshComponent*> GetUsedISMCs();
// [rdInst v1.43] Fills the array with rdActors that currently have selected instances
int32 GetActorsWithSelectedISMS(TArray<ArdActor*>& actors,bool& beingEdited,bool filterOutSelected=false);
// [rdInst v1.43] Returns the Instance Handle ID for the specified StaticMesh
FString BuildMeshString(const UStaticMeshComponent* smc);
// [rdInst v1.43] Returns the Instance Handle ID (full detail) for the specified StaticMesh Component
FString BuildCompleteMeshString(const UStaticMeshComponent* smc);
// [rdInst v1.43] Returns the Instance Handle ID for the specified StaticMesh
FString rdGetSMsid(const UStaticMesh* m);
// [rdInst v1.43] Returns the Instance Handle ID for the specified StaticMesh, Material list and optional scale for negative checks
FString rdGetSMXsid(const UStaticMesh* m,TArray<UMaterialInterface*> mats,FVector scale=FVector(1,1,1));
// [rdInst v1.43] Returns the Instance Handle ID for the specified StaticMesh Component, using FString rdGetSMCsid(const UStaticMeshComponent* smc);
FString rdGetSMCsid(const UStaticMeshComponent* smc);
// [rdInst v1.43] Returns the total number of instances in all meshes stored in the recycle cache
int32 rdGetTotalNumberOfInstancesInRecycleCache();
// [rdInst v1.43] Returns the number of instances stored in the recycle cache for the specified mesh
int32 rdGetNumberOfInstancesInRecycleCache(UStaticMesh* mesh);