Available commands:
void Dash( Exor::Entity::Id entity, Exor::Entity::Id source );
void StopDash( Exor::Entity::Id entity);
bool IsDashing( Exor::Entity::Id entity );
void SendBuildingBuildEvent( Exor::Entity::Id entity, bool upgrade );
void SendBuildingSellEndEvent( Exor::Entity::Id entity );
void ShowTimeoutSoundEvent( Exor::Entity::Id entity, float timeOut, const char * sound, bool positive );
void ChangeToWreck( Exor::Entity::Id entity, const Exor::String & damageType, float damagePercentage, const Exor::String & wreckMaterial, float minWreckSpeed );
void RequestDestroyPattern( Exor::Entity::Id entity, const Exor::String & destroyPattern );
void RequestDestroyPattern( Exor::Entity::Id entity, const Exor::String & destroyPattern, bool destroyEntity );
void ChangeAIGroupsToAggressive( Exor::Entity::Id aroundEntity, float radius, bool disbandGroup );
void MarkEntityAsLootContainer( Exor::Entity::Id entity, WeaponRarity rarity );
void ChangeInteractiveEntityStatus( Exor::Entity::Id entity , bool enabled );
float GetUnitCurrentSpeed( Exor::Entity::Id entity );
void EnableVegetationChain( Exor::Entity entity );
void DisableVegetationChain( Exor::Entity entity );
void RemovePropsInEntityBounds( Exor::Entity::Id entity );
void RemoveTypesInEntityBounds( Exor::Entity::Id entity, const Exor::String & types );
void CombineDatabase( Exor::Entity::Id entity, Exor::Database * db );
void HighlightEntity( Exor::Entity ent, float time );
bool EnsureGatherableComponent( Exor::Entity entity );
std::pair<Exor::String, float> GetResourceAmount( Exor::Entity entity );
void ChangeResourceAmount( Exor::Entity entity, float value );
Exor::Vector< std::pair<Exor::String, float> > GetGatherableResources( Exor::Entity entity );
float GetGatherResourceAmount( Exor::Entity entity, const Exor::String resourceName );
void ChangeGatherResourceAmount( Exor::Entity entity, const Exor::String resourceName, float value );
void AddEntityMod( Exor::Entity entity, const Exor::String & name, const Exor::String & modType, const Exor::String & modValue );
void RemoveEntityMod( Exor::Entity entity, const Exor::String & name, const Exor::String & modType );
void SetRotateToTargetAngularSpeed( Exor::Entity entity, float angularSpeed );
EntityIds GetChildren( Entity::Id entity, bool recursive ) const;
Entity::Id GetChildByName( Entity::Id entity, const Exor::String & name ) const;
Entity::Id GetParent( Entity::Id entity );
String GetName( Entity::Id entity );
String GetGroup( Entity::Id entity );
String GetType( Entity::Id entity );
String GetBlueprintName( Entity::Id entity );
TeamId GetTeam( Entity::Id entity );
void SetName( Entity::Id entity, const String & name );
void SetGroup( Entity::Id entity, const String & name );
void SetParent( Entity::Id entity, Entity::Id parent );
float GetPositionX( Entity::Id entity ) const;
float GetPositionY( Entity::Id entity ) const;
float GetPositionZ( Entity::Id entity ) const;
Vector3 GetPosition( Entity::Id entity ) const;
Vector3 GetLocalPosition( Entity::Id entity )
Vector3 GetScale( Entity::Id entity ) const;
Vector3 GetBoundsSize( Entity::Id entity ) const;
Entity::Id SpawnEntity( IdString blueprint, const Vector3 & pos, const Quaternion & orient, TeamId team );
Entity::Id SpawnEntity( const String & blueprint, const Vector3 & pos, TeamId team );
Entity::Id SpawnEntity( const String & blueprint, float x, float y, float z, const String & team );
Entity::Id SpawnEntity( const String & blueprint, const String & spawnPointName, const String & team );
Entity::Id SpawnEntity( const String & blueprint, Entity::Id entity, const String & team );
Entity::Id SpawnEntity( const String & blueprint, Entity::Id entity, TeamId team );
Entity::Id SpawnEntity( const String & blueprint, Entity::Id entity, const String & attachment, const String & team );
Entity::Id SpawnEntity( const String & blueprint, Entity::Id entity, const String & attachment, TeamId team );
Entity::Id SpawnAndAttachEntity( const String & blueprint, Entity::Id entity );
Entity::Id SpawnAndAttachEntity( const String & blueprint, Entity::Id entity, const String & attachment, const String & team );
Entity::Id SpawnAndAttachEntity( Entity::Id entity, const String & attachment);
void SpawnEntities( const String & blueprint, const String & spawnPointName, const String & team );
void SpawnEntities( const String & blueprint, const String & spawnPointName, const String & team, const String &groupName );
Entity::Id SpawnEntity( IdString blueprint, const Vector3 & pos, const Quaternion & orient );
Entity::Id SpawnEntity( Entity::Id target );
Entity::Id CreateEntity( IdString blueprint );
void AttachEntity( Entity::Id entity, Entity::Id parent );
void AttachEntity( Entity::Id entity, Entity::Id parent, const String & attachment );
void DetachEntity( Entity::Id entity );
void CreateLifeTime( Entity::Id entity, float time, const String & type );
float GetLifeTime( Entity::Id entity );
void RemoveLifeTime( Entity::Id entity );
void CreateOrSetLifetime( Entity::Id entity, float time, const String & type );
void EnableCollisions( Entity::Id entity );
void DisableCollisions( Entity::Id entity );
void ChangeGravityAffected( Entity::Id entity, bool value );
void EnableCollisionsByGroup( Entity::Id entity, const String & group );
void DisableCollisionsByGroup( Entity::Id entity, const String & group );
void EnableCollision( Entity::Id entity, const String & name );
void DisableCollision( Entity::Id entity, const String & name );
void ChangeToDynamic( Entity::Id entity, Exor::String physicMaterialName, Exor::String physicGroupId, int dominance, float mass, float damping, float size );
void PhysicsSleepNotify( Entity::Id entity, bool flag );
void PhysicsSleep( Entity::Id entity );
void PhysicsWakeUp( Entity::Id entity );
Exor::Aabb GetPhysicsWorldAabb(Entity::Id entity, int objectIdx );
void RemoveComponent( Entity::Id entity, const String & name );
bool HasComponent(Entity::Id entity, const String& name);
void DissolveEntity( Entity::Id entity, float duration );
void DissolveEntity( Entity::Id entity, float duration, float delay );
void RemoveEntity( Entity::Id entity );
void RemoveEntity( Entity::Id entity, float delay );
bool IsAlive( Entity::Id entity );
void RegisterLua( Lua & lua ) override;
void Rotate( Entity::Id, float x, float y, float z, float angle);
void Teleport( Entity::Id entity, Entity::Id toEntity );
void SetScale( Entity::Id entity, float x, float y, float z );
void SetPosition( Entity::Id entity, float x, float y, float z );
void SetPosition( Entity::Id entity, Vector3 pos );
void SetOrientation( Entity::Id entity, float x, float y, float z, float angle );
void SetPhysicsScale( Entity::Id entity, float x, float y, float z );
void SetNavMeshScale( Entity::Id entity, float x, float y, float z );
void SetForward( Entity::Id entity, float x, float y, float z );
float GetAngleBetween( Entity::Id entity1, Entity::Id entity2 );
float GetAngleTo( Entity::Id entity1, Entity::Id entity2 );
float GetDistanceBetween( Entity::Id entity1, Entity::Id entity2 );
float GetDistance2DBetween( Entity::Id entity1, Entity::Id entity2 );
bool HasInArc( Entity::Id entity1, Entity::Id entity2, float minAngle, float maxAngle );
TeamId GetTeam( const String & team );
TeamMask GetTeamMask( const String & mask );
void SetTeam( Entity::Id entity, const String & team );
bool HasTeam( Entity::Id entity );
bool CompareTeam( Entity::Id entity, const String & team );
bool IntersectTeamMask( Entity::Id entity, const String & teamMask );
void ChangeCharacterControllerGroupId( Entity::Id entity, const String & groupId );
void ChangePhysicsGroupId( Entity::Id entity, const String & groupId );
void ChangeType( Entity::Id entity, const String & type );
bool CompareType( Entity::Id entity, const String & type );
bool CompareType( Entity::Id entity1, Entity::Id entity2 );
Exor::String GetMeshName( Entity::Id entity );
void ChangeMesh( Entity::Id entity, Exor::String meshName );
void ChangeMaterial( Entity::Id entity, const String & materialName );
void SetMaterial( Entity::Id entity, const String & materialName, const String & slot );
void SetSubMeshMaterial( Entity::Id entity, const String & materialName, int submesh, const String & slot );
void RemoveMaterial( Entity::Id entity, const String & slot );
bool IsSkinned( Entity::Id entity );
String GetOverridenMaterial( Entity::Id entity );
Vector<String> GetOverridenMaterials( Entity::Id entity );
void FadeEntityIn( Entity::Id entity, float timer );
void FadeEntityOut( Entity::Id entity, float timer );
void SetVisible( Entity::Id entity, bool visible );
void SetGraphicsUniform( Entity::Id entity, const String & uniformName, float x );
void SetSubmeshGraphicsUniform( Entity::Id entity, int submesh, const String & uniformName, float x );
void SetGraphicsUniform( Entity::Id entity, const String & uniformName, float x, float y );
void SetGraphicsUniform( Entity::Id entity, const String & uniformName, float x, float y, float z );
void SetGraphicsUniform( Entity::Id entity, const String & uniformName, float x, float y, float z, float w );
Entity::Id CullNavMeshUnderEntity( Entity::Id entity, float radius );
void SetLightRange( Entity::Id entity, float range );
void SetLightColor( Entity::Id entity, float r, float g, float b, float a );
void SetLightShadowCaster( Entity::Id entity, bool shadowCaster );
static int QueueEvent( lua_State * L );
Optional<TypeInstance> GetComponent( Exor::Entity entity, const char * componentName );
Optional<TypeInstance> CreateComponent( Exor::Entity entity, const char * componentName );
ComponentId GetComponentId( const char* componentName );
void LoadMissingDatabaseKeysFromBlueprint( Exor::Entity entity );
GetBlueprintDatabase( entity )
GetBlueprintDatabase( blueprint_name: string )
CreateQuickSandSinkMovement( entity, float duration)
EntityService:GetWorldTransform( entity )