Create a map openspades

1-Create your base map in pyspades map editor, Terravox , BlockMan2D or
with Create a Heightmap Tutorial

PySpades Map Editor
PySpades Map Editor download link

BlockMan2D .NET Framework 4.0 Required
It doesn’t work on Windows 10 :weary:
BlockMan2D download link

Terravox needs Visual C++ 2013 64bits
Terravox download link

2-In Goxel, Slab6, VoxelShop or use a voxelizer How to Voxelize Tutorial you create all kinds of models exported in .kvx
slab6.exe (140 KB)
image
Can use this Base Map 9 Baseplate Maps
and this models Pack of 450 models kvx OpenSpades

3-You open your map (vxl) with voxed to place your .kvx models with the U then save the result with Alt + F3 or create your map therem, the controls can be annoying I recommend you change them
voxed.exe (474.5 KB)
Voxed Controls
Change voxed and slab6 controls Tutorial

(to save part of the map in slab6 separate the area you want to save from the ground and press F7 [Max 256x256])

4-You create a .txt file with the name of your map inside the maps folder to be able to configure which game mode you want it to be in (it is not necessary to put scripts to play in ctf but if you want to configure it create a .txt file)
(To test your map you will need to create a server Create a Server OpenSpades Tutorial)

----------------------Arena-----------------------

name = ‘aim_pro’
version = ‘1.1’
author = ‘iSkyte’
description = ‘Map specialized in aim training (rifle) and 1v1.’
extensions = {
‘water_damage’ : 200,
‘arena’: True,
‘arena_blue_spawn’ : (272, 255, 60),
‘arena_green_spawn’ : (240, 263, 60),
‘arena_gates’: ((239, 267, 60), (270, 244, 60))
}
from pyspades.constants import RIFLE_WEAPON
from pyspades.server import ServerConnection

def get_spawn_location(self):
if self.weapon_object.name != “Rifle”:
if not self.name:
return
if self.on_weapon_set(RIFLE_WEAPON) == False:
return
self.weapon = RIFLE_WEAPON
self.set_weapon(RIFLE_WEAPON)
return ServerConnection.get_spawn_location(self)

----------------------CTF-----------------------

name = ‘Blood Gulch’
version = ‘1.0’
author = ‘X-DE’
description = ‘Remake of the Halo Combat Evolved map Blood Gulch’
extensions = { ‘water_damage’ : 100 }
protected = [‘A1’, ‘A2’, ‘A3’, ‘A4’, ‘A5’, ‘A6’, ‘A7’, ‘A8’, ‘B1’, ‘B2’, ‘B3’, ‘B4’, ‘B5’, ‘B6’, ‘B7’, ‘B8’, ‘C1’, ‘C2’, ‘C3’, ‘C4’, ‘C5’, ‘C6’, ‘C7’, ‘C8’, ‘D1’, ‘D2’, ‘D3’, ‘D4’, ‘D5’, ‘D6’, ‘D7’, ‘D8’, ‘E1’, ‘E2’, ‘E3’, ‘E4’, ‘E5’, ‘E6’, ‘E7’, ‘E8’, ‘F1’, ‘F2’, ‘F3’, ‘F4’, ‘F5’, ‘F6’, ‘F7’, ‘F8’, ‘G1’, ‘G2’, ‘G3’, ‘G4’, ‘G5’, ‘G6’, ‘G7’, ‘G8’, ‘H1’, ‘H2’, ‘H3’, ‘H4’, ‘H5’, ‘H6’, ‘H7’, ‘H8’]

#scripting

from random import randrange, choice
from pyspades.constants import *
from pyspades.server import ServerConnection
from commands import choice

def get_entity_location(team, entity_id):
if entity_id == BLUE_FLAG:
return (357, 393, 62)
if entity_id == BLUE_BASE:
return (357, 393, 62)
if entity_id == GREEN_FLAG:
return (161, 110, 62)
if entity_id == GREEN_BASE:
return (161, 110, 62)

spawn_locations_blue = [
(357, 393, 62),
(341, 370, 61),
(376, 376, 61),
(337, 414, 61),
(380, 409, 60),
(356, 384, 55)
]

spawn_locations_green = [
(162, 120, 55),
(161, 110, 62),
(146, 88, 61),
(172, 84, 61),
(142, 128, 61),
(184, 125, 61)
]

def get_spawn_location(connection):
if connection.team is connection.protocol.blue_team:
x, y, z = choice(spawn_locations_blue)
return x, y, z
if connection.team is connection.protocol.green_team:
x, y, z = choice(spawn_locations_green)
return x, y, z

----------------------Babel-----------------------

name = ‘name’
version = ‘1.0’
author = ‘author’
extensions = {
‘babel’ : True
}

4 Likes