Step number one : Creating a new map
At first, open your CS with SW (File/Load Game - Doukutsu.exe). On the left side, you can see a map list. Right click on any map, select Create new map and enter the filename of your map.
Now, double click your map (it should be right above Scripts).
As you can see, your map is empty, BUT - tileset bar is empty too. To set it, right click on your map and select Settings. You can change a lot of things there, but we want to change Map name, Tileset and NPCs. My map name is "Monster Extermination", tileset - Oside, NPC - Cemet and Weed.
Step two : Designing
Now we can start designing a map. I'm sure that default map size won't satisfy you, so use Resize.
The key to make a good map - details. Your map should contain as much details as it can, but not too much - it have to be playable. Examples:
Bad map (click to enlarge) :
Good map (click to enlarge) :
Third step : Scripting
Now you have a map, but - there's really nothing interesting there AND it's not playable - it doesn't have start point and any scripts. So, let's set a start point.
In previous tutorial I showed you how Start Point looks - to set it, change SW to events mode, right click in a place you want to set your SP and click Set player start position.
Now you can try to run a map, save and just start a new game.
"But hey! The whole map is black!"
That's because we have to fade in the shadow.
Open the script editor (by clicking the button with "Hey!" in a quote cloud). You'll see an empty page of script. Now : do you remember Start Event value? By default it's 200, so our first event value will be 200.
All events start with #XXXX. XXXX are the digits you use to recognize the event script. Good idea is to start events from 200, the start event. There have to be 4 digits, so first line will look like this :
Now the game will use this event every time you load this map. All commands starts with <. Fade in command is FAIxxxx . XXXX are the digits CS use to recognize the way of fading in. We can use the simplest way is 0000. All scripts ends with . no matter what. Full script :
Now your map should be visible, showing up with a transition.
Last step : Content
We have a map, we can see it and move on it. But there's really nothing to do there. No weapons, no enemies. I'll show you how to set them.
Your enemies are easy to set. All you have to do is select which one you want to add or input sprite number. As I use "Cemet" NPCs, so I'll add Critter from First Cave group, its sprite number is 64. You have to use "Cemet" NPC sheet to see enemy sprite from First Cave and Graveyard properly, otherwise game won't show enemy/character sprite as it should. Now just add this event(enemies are events too, but without scripts, script value is 0000) anywhere you want. Any spikes aren't effective against enemies.
Now it's time to get some guns and start extermination of the monsters you created.
AM+x:y - this is a command that gives you a gun X with Y amount of ammo. Remember : all numbers have to have 4 digits.
Let's give our character a blade with unlimited ammo.
As we have event number 200, now its time for 300. Of course we could use 201, but 300 is easier to remember and looks better. So we start with #0300, use AM+x:y and close this with END
We can add a message that tells us that we got a weapon. The most simple way is to use
MSG(Message) of course cant use 4-digits values, because we want to show up text. But - the message disappear. Use NOD to make it disappear after you push action.
Full map script : Www11.speedyshare.com
That's it. Now just add event on map. Let's use sprite 70 - sparkling item from (Basics) group.
In event, input 0300. To make event run when you push down arrow, click Edit flags below Flag ID and check Call >Event< on action. Now just add this event same way as you did with enemies.
This is the end! You made your map for Cave Story.
Wanna see more commands and values (like other weapons)?
Check this out : Lotlot.net It's all you need to make an awesome map.
Here's my simple map I made for this tutorial as example : Indiedb.com