# Introduction to Modding Smart Assemblies

Some EVE Frontier smart assemblies are **programmable** — you can customize their in-game behavior by deploying custom Move contracts.

## Getting Started

Prerequisites to customize a smart assembly:

1. **Create a Character** — your on-chain identity that owns all your assemblies. See [Smart Character](https://docs.evefrontier.com/smart-assemblies/smart-character).
2. **Build a Network Node** — anchor a network node at a Lagrange point. This is the power source for your base. See [Network Node](https://docs.evefrontier.com/smart-assemblies/network-node).
3. **Deposit Fuel & Go Online** — deposit fuel into the network node and bring it online to start generating energy.
4. **Anchor a Smart Assembly** — create a smart assembly (e.g., Storage Unit, Gate) in your base. It automatically connects to the network node for energy.
5. **Bring the Assembly Online** — the assembly reserves energy from the network node and becomes operational.

> For local development and testing, refer to [builder-scaffold](https://github.com/evefrontier/builder-scaffold) so you have everything you need to directly write custom logic for your smart assembly.

> For a one-command automated setup, see the community tool [efctl](https://frontier.scetrov.live/links/efctl/) ([docs](https://docs.evefrontier.com/tools/efctl)).

## Programmable Assemblies

Each assembly type has its own extension pattern. Each section has a **concept overview** (how the assembly works and its API) and a **build guide** (step-by-step instructions to write, publish, and test a custom extension):

* [Smart Gate](https://docs.evefrontier.com/smart-assemblies/gate) — custom rules for space travel (e.g., toll gates, access lists) · [Build](https://docs.evefrontier.com/smart-assemblies/gate/build)
* [Smart Storage Unit](https://docs.evefrontier.com/smart-assemblies/storage-unit) — custom rules for item deposits and withdrawals (e.g., vending machines, trade hubs) · [Build](https://docs.evefrontier.com/smart-assemblies/storage-unit/build)
* [Smart Turret](https://docs.evefrontier.com/smart-assemblies/turret) — custom targeting logic · [Build](https://docs.evefrontier.com/smart-assemblies/turret/build)

To read and write world state from code (SDK, GraphQL, gRPC), see [Interfacing with the EVE Frontier World](https://docs.evefrontier.com/tools/interfacing-with-the-eve-frontier-world).
