\b;Instrukcja \c;factory\n;
Składnia:
\s;\c;factory ( kategoria, program, obiekt );\n;

Zaczyna budowę robota pasującego do podanej \l;kategorii\u cbot\category; i uruchamia na nim podany program po zakończeniu budowy.

\t;kategoria: \c;\l;int\u cbot\int;\n;
\l;Kategoria\u cbot\category; robota, który ma zostać skonstruowany.

\t;program: \c;\l;string\u cbot\string;\n; (domyślnie przyjmuje: \c;""\n;)
Program ten zostanie uruchomiony po zakończeniu pracy przez fabrykę. To może być zarówno \l;publiczna\u cbot\public; \l;funkcja\u cbot\function;, nazwa pliku lub czysty kod.

\t;\l;obiekt\u cbot\object;
\l;Fabryka robotów\u object\factory;, domyślnie najbliższa.

\t;Typ wyniku: \c;\l;int\u cbot\int;\n;
Z reguły po wywołaniu błędu program zatrzymuje się. Możesz temu zapobiec, wykorzystując instrukcję \c;\l;errmode\u cbot\errmode;(0)\n;. Jeśli wystąpi błąd, funkcja \c;factory()\n; zwróci wartość różną od zera.
\c;== 0 \n;Rozpoczęto konstrukcję
\c;!= 0 \n;Nie udało się rozpocząć konstrukcji (np. w fabryce nie ma \l;kostki tytanu\u object\titan;, robot nie został odkryty)

\t;Przykłady

Czysty kod:
\c;
\s; extern void New()
\s; {
\s;     factory(WheeledGrabber, "extern void Say123() { message(123); }");
\s; }
\n;

Publiczna funkcja:
\c;
\s; extern void New()
\s; {
\s;     factory(WheeledGrabber, "SayHello");
\s; }
\s;
\s; public void SayHello()
\s; {
\s;     message("hello");
\s; }
\n;

Nazwa pliku:

Zapisz to jako say-foo.cbot. Uwaga: upewnij się, że zaznaczyłeś pole wyboru "Publiczny" podczas zapisywania - spowoduje to, że say-foo.cbot znajdzie się w folderze program/.
\c;
\s; extern void New()
\s; {
\s;     message("Foo");
\s; }
\n;

Użyj funkcji factory w następujący sposób:
\c;
\s; extern void New()
\s; {
\s;     factory(WheeledGrabber, "program/say-foo.cbot");
\s; }
\n;
\t;Zobacz również
\c;\l;researched\u cbot\researched;\n;, \c;\l;wait\u cbot\wait;\n;.
\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;.
