Updates Features Download Demos Support

Game maps are Unity Scenes.

1- Create your map in an empty scene. 'Empty' means these scene must not have a Camera object.
IMPORTANT NOTE
MAPS CANNOT HAS NEGATIVE POSITIONS. YOU SHOULD BUILD THE MAP FROM 0,0 to(for example) 64,64

2- Make 'static' your collider objects you want to be a collision for EasyMOBA. If you want to walkable static colliders, just set it layer to 'Ground'..



All collider types are supported
3- After creating your map, click on the EasyMOBA button on Top menu and select Map Exporter. Export your map. Your exported map will be placed at Resources/Maps/



4- Now let's define this map it on the server side.
Go to ServerData folder. ServerData folders are placed at the server application folder. If your server is a Unity Project (not builded yet) you can find that folder in the same folder with Assets, Project Settings etc.


Enter ServerData/Maps/ folder. You will see a sample maps. Create new one by copying one of them. Name it as you wish.




Now go to that folder, you will see the a .png file. Replace it with your map export (See the step 3)
But don't delete your maps from client project. Client also uses the map exports.
The name of the .png file is not important. Server will read the first .png file in the folder.
Open the MapData.json file. It's setting file of your map. You will add your spawn points, creature spawns, team size, round time etc.


MAP SETTINGS

"mapSize":64, // MapSize is deprecated. The server reads the map size automatically from file name.
"clientLanguageId":55, // All connected client will see this map on the list. clientLanguageId will be the map name. Check Languages section for more information
"clientSceneName":"TeamDeathmatch", // Client scene name is the name of your scene you have created on the client project. Don't forget to add your scene to the build settings->scene list.

"teamsize":2,
// teamsize:0 means Deathmatch. Team spawn points will be readed from spawnPoints array no 0.
teamsize:1 means co-op. Team spawn points will be readed from spawnPoints array no 0.
If the teamsize is higher than 1 means team teathmatch. Team spawn points will be readed from spawnPoints array no [TeamNo]. Don't create a new spawnPoints object in the json file for every team.
"roundCount":8,// round count of the session (seconds)
"roundTime":60,// round time of per round (seconds)
"lobbyTime":2,// Lobby waiting time for other players or preparing (seconds)
"experienceModifier":2, // You know what it means :) Every received exp will be multiplied with this value. (float value, it can be etc 1.5)
"maxPlayers":8, // Maximum players
"minPlayers":4, // Minimum players. If you make it 1, the map will be played as singleplayer. Probably againts creatures. Or Traning ground etc.
After the waiting lobby time, if the minimum players doesn't meet, the session owner can add bots.
"teamData": // Spawn points, add spawnObject {} object for every team. If you face parsing errors, see: https://www.w3schools.com/js/js_json_arrays.asp

"creatureSpawns": // The spawns of creatures.
[
{
"spawnPoint": { "x":20.98, "y":0, "z":20.49}, // The spawn point
"spawnTime":4, // Spawn time
"spawnCount":4, // Max creatures will be spawned by this spawner.
"spawnRange":30, // Range of the spawner
"spawnObject": // Spawn objects. High value of rate will be spawned mostly.
[
{
"clientPrefab":"Skeleton", // The creature Id, check Adding a Creature section for more information
"spawnRate":20
},
{
"clientPrefab":"SkeletonKing",
"spawnRate":1
}
]
}
]