---
# System prepended metadata

title: Untitled

---

## FLEX Interactive Project: FLEXMaid

FLEXMaid is expanding what maids couldn't do originally, with FLEXMaid, you can decide when each task is cleaned up without relying on cleaning them yourself, or you can use our rich-api to clean them whenever you want. **FLEXMaid, the maids' feature**

## Purpose: Why use a maid class?
Using a maid class is something you would consider when building a serious project where you need to clean up many connections and instances. Using maids for *"deleting a few to one instances"* can be an overkill solution so I suggest you cleaning them yourself if you can.

## Why FLEXMaid?
FLEXMaid main purpose is to expand what maids couldn't do originally without external fork. While the features in FLEXMaid can be made if you are an expert, FLEXMaid is made so you shouldn't *reinvent* the features from start, giving you the most possible free time which you could lose when you want to build a custom one.


## FLEXMaid API & Docs
**NOTICE:** In FLEXMaid, there are two classes, the constructor class *(the one retured after requring the modulescript)* and the maid class. 

> ConstructorClass.new(ETable : Array `optional`)
>     >> Constructs a new maid object from the maid class. ETable stands for embedded table, it is used for migrating FLEXMaid's methods and features with an existing table.  

> ConstructorClass:WaitForGlobalizedMaid(MaidID : any, timeout : number `optional`)
>     >> Returns the globalized maid with the give MaidID. This function yields until it finds the maid if no timeout is given, the timeout works just like `Instance:WaitForChild(child, timeout)`. 

> ConstructorClass.getGlobalizedMaid(MaidID : any)
>     >> Unlike `WaitForGlobalizedMaid()`, it searches for the maid, if nothing found, it will return nil.

> MaidClass.ClassName
>     >> Returns the maid's class name which is `FLEXMaid`.

> MaidClass:GiveTask(Object, DeletionFunction  : `string` `optional`, Lifetime : `nunber` `optional`)
>     >> Gives a task to the maid to clean when any of the cleanup methods are invoked or it's lifetime ended.
>       >>> **Object:** The object that will be cleaned up 
>       >>> **Deletion function:** an optional paramter to clean custom objects.
>       >>> **Lifetime:** the amount of seconds that the object will last for before getting cleaned up automatically **it only works if you invoked `EnableLifetime`**

> MaidClass:GiveTaskOn( Event : `signal`,Object, DeletionFunction  : `string` `optional`, Lifetime : `nunber` `optional`)
>     >> Gives a task to the maid when the given event is fired to clean when any of the cleanup methods are invoked or it's lifetime ended.
>     >>> **Event:** the event that will  