# Combiner

The Combiner is a core component that should be added to the object you want to combine. All nested child objects with [mc-combinable](https://teogames.gitbook.io/dynamic-mesh-combiner-demo/components/mc-combinable "mention") that match the specified [#keys](https://teogames.gitbook.io/dynamic-mesh-combiner-demo/components/mc-mesh-combiner#keys "mention") will be automatically baked.&#x20;

For detailed information on each specific implementation of the combiner, please refer to the documentation. The documentation will provide in-depth details and instructions for utilizing the combiner in different scenarios.

* [mc-mesh-combiner](https://teogames.gitbook.io/dynamic-mesh-combiner-demo/components/combiner/mc-mesh-combiner "mention")
* [mc-chunk-combiner](https://teogames.gitbook.io/dynamic-mesh-combiner-demo/components/combiner/mc-chunk-combiner "mention")

## Custom combiners

You have the flexibility to create your own custom combiners to tailor the combining process to your specific needs. To achieve this, you need to create a new component that inherits from the `AbstractMeshCombiner` class. Within your custom combiner component, you must implement two abstract functions:

1. `Include(Combinable combinable)`: This function is responsible for including a specific Combinable object in the combining process. Within this function, you can define the necessary logic to combine the Combinable into the combined result.
2. `Exclude(Combinable combinable)`: This function is used to exclude a Combinable object from the combining process. If the function is called for a specific Combinable and the necessary conditions are met, you can implement the logic to exclude that Combinable from the combining process.

By creating custom combiners and implementing these void functions, you have the flexibility to design a combining process that fits your specific requirements. You can define the logic for including or excluding Combinable objects and specify the necessary combining operations within each function.
