# Advanced Level Editor Guide

**URL:** https://discourse.codecombat.com/t/advanced-level-editor-guide/29485
**Category:** Artisan
**Created:** [June 30, 2021, 1:53pm UTC](https://discourse.codecombat.com/t/advanced-level-editor-guide/29485 "2021-06-30T13:53:44Z")
**Posts on this page:** 7
**Page:** 1

<div class="post-metadata">

### Author: ![RangerGrant9307](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.codecombat.com/rangergrant9307/32/26001_2.png) [@RangerGrant9307](https://discourse.codecombat.com/u/RangerGrant9307)
#### Post date: [June 30, 2021, 1:53pm UTC](https://discourse.codecombat.com/t/advanced-level-editor-guide/29485/1 "2021-06-30T13:53:44Z")

</div>

Hi, this is an advanced level editor guide  
This will cover multiple hard topics.  
API Changes:  
Forking  
Custom Boss Stars  
Summoning Custom Entities  
Custom Missiles  
Adding CommandAbleTypes to a player’s boss star only in your level:  
Adding custom methods to a player’s boss star: like ['cleave or ‘bash’]  
API Changes.

To change a thang’s API, go to programming.hasAPI.  
To create custom types, like lets say, sharpshooter, and you want to change an archer to a sharpshooter, simple go to it’s API, scroll down, and change it’s type, to ‘sharpshooter’.  
The reason why you use paladin.canCast(“spell”) is because, it has can cast in it’s API.  
If you want to investigate, click here.

> **[CodeCombat - Coding games to learn Python and JavaScript](https://codecombat.com/editor/thang/paladin)**
>
> Learn typed code through a programming game. Learn Python, JavaScript, and HTML as you solve puzzles and learn to make your own coding games and websites.

Scroll down to it’s API.  
For lets say, a witch, it does not have canCast in it’s API, so, if you already know how to change a witch’s alliance, and add it to your CommandableTypes, simply put CanCast into it’s API methods.  
Forking:  
How to copy a level:  
Use a computer, and click the down pointing arrow on the top right.  
Click Fork.  
Custom Boss Stars:  
If you want to be able to summon warlocks, follow these steps.  
Go your Hero Placeholder:  
Click add components.  
Add an existence.Builds, and an existence.Spawns  
Add a buildables folder, with the plus button.  
Type in Warlock.  
You will see , a required thangTypes, and a buildcooldown. Add a gold cost.  
Set it to whatever you want.  
Go to the required ThangTypes, and type in Ogre Warlock.  
Go to existence.Spawns, then type ogre warlock.  
If you want to command it, add a component called programming.Commands.  
Add commandable Types, then type in warlock.  
If you want to command it to cast spells, add a cast in the commandable methods.  
Please bare in mind, that the warlock does not have canCast in it’s api, unlike the paladin.  
So, if you want to command warlocks, we go into our third topic.  
To summon a warlock with canCast, follow these steps.  
Add a warlock into the level.  
Change it’s alliance to nuetral.  
Go to it’s API methods and add canCast, and findFriends, if you want it to cast grow on you.  
Then, go to existence.Exists  
Set that to false, and rename the warlock to something like warlock\_t  
Then go back to your hero placeholder, and delete the ogre warlock from your existence.Builds. Do the same for your existence.Spawns.  
Add a ThangTemplate, and type “warlock\_t” without the quotes into the box.  
Put warlock into your programming.commands if you haven’t already.  
Add cast into your methods.  
Test the level, and type in hero.summon(“warlock”)  
Congragulations, now you can make custom boss stars, and summon custom entities.  
Why stop at there?  
In several of my games, have added completely unorthodonix ogres, like the Night Witch.  
Those don’t exist in normal CoCo, but in my level, they do, thanks to ThangTemplates.  
The level is yours, to do whatever you like. Heck, you can even follow the steps above, and make a warlock that summons 50000 skeletons at a time, 5000000 attack dmg, 320320390239 health, and costs 1 gold.  
Custom Methods  
These are easy.  
Lets say, you followed the custom entities step, made a soldier, let it cleave and bash, and called it a knight, by changing the type in the API.  
Just add knight into your commandable types, then add cleave and bash into your commandable methods.  
Bear in mind you must add isReady to the knight’s API, or it won’s work.  
Thats it!  
Custom Missiles:  
If you want to make a ice ranger, that shoots deadly blue missiles, follow these steps.  
If you want your ranger to be an archer, get an archer, and place it into the world.  
Next, get a water arrow.  
Go to the thanglist, then add combat.forceBolt to the components list.  
Name the missiles watershot\_t  
Go to your archer, and go to the combat.shoots.  
Delete the arrow.  
Go to the missileThangID.  
Here is what it looks like:

> **[CodeCombat - Coding games to learn Python and JavaScript](https://codecombat.com/play/level/ice-ranger)**
>
> Learn typed code through a programming game. Learn Python, JavaScript, and HTML as you solve puzzles and learn to make your own coding games and websites.

Level editor, so you can see how it’s done.

> **[CodeCombat - Coding games to learn Python and JavaScript](https://codecombat.com/editor/level/ice-ranger)**
>
> Learn typed code through a programming game. Learn Python, JavaScript, and HTML as you solve puzzles and learn to make your own coding games and websites.

Enjoy your new skillz!!!

---

<div class="post-metadata">

### Author: ![RangerGrant9307](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.codecombat.com/rangergrant9307/32/26001_2.png) [@RangerGrant9307](https://discourse.codecombat.com/u/RangerGrant9307)
#### Post date: [June 30, 2021, 1:54pm UTC](https://discourse.codecombat.com/t/advanced-level-editor-guide/29485/2 "2021-06-30T13:54:12Z")

</div>

This isn’t done yet, I accidently published it.

---

<div class="post-metadata">

### Author: ![RangerGrant9307](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.codecombat.com/rangergrant9307/32/26001_2.png) [@RangerGrant9307](https://discourse.codecombat.com/u/RangerGrant9307)
#### Post date: [June 30, 2021, 2:19pm UTC](https://discourse.codecombat.com/t/advanced-level-editor-guide/29485/3 "2021-06-30T14:19:45Z")

</div>

Finished. 👍  
(20 chars)

---

<div class="post-metadata">

### Author: ![RangerGrant9307](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.codecombat.com/rangergrant9307/32/26001_2.png) [@RangerGrant9307](https://discourse.codecombat.com/u/RangerGrant9307)
#### Post date: [July 11, 2021, 3:40pm UTC](https://discourse.codecombat.com/t/advanced-level-editor-guide/29485/4 "2021-07-11T15:40:52Z")

</div>

Wrote how to do custom missiles.  
👍

---

<div class="post-metadata">

### Author: ![Red-backspider](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.codecombat.com/red-backspider/32/23212_2.png) [@Red-backspider](https://discourse.codecombat.com/u/Red-backspider)
#### Post date: [July 13, 2021, 8:50am UTC](https://discourse.codecombat.com/t/advanced-level-editor-guide/29485/5 "2021-07-13T08:50:07Z")

</div>

I know you make awesome games like war at the mountains and others. Can you make one where you start off with usara?

---

<div class="post-metadata">

### Author: ![RangerGrant9307](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.codecombat.com/rangergrant9307/32/26001_2.png) [@RangerGrant9307](https://discourse.codecombat.com/u/RangerGrant9307)
#### Post date: [July 13, 2021, 1:52pm UTC](https://discourse.codecombat.com/t/advanced-level-editor-guide/29485/6 "2021-07-13T13:52:07Z")

</div>

Challenger accepted.

---

<div class="post-metadata">

### Author: ![Red-backspider](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.codecombat.com/red-backspider/32/23212_2.png) [@Red-backspider](https://discourse.codecombat.com/u/Red-backspider)
#### Post date: [July 14, 2021, 12:46am UTC](https://discourse.codecombat.com/t/advanced-level-editor-guide/29485/7 "2021-07-14T00:46:54Z")

</div>

😁 thanks (2222 charcs)
