Create a map openspades

1-Create your base map in PySpades Map Editor or Terravox

PySpades Map Editor
PySpades Map Editor download link

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

2-In Goxel, Slab6 or use a voxelizer How to Voxelize Tutorial you create all kinds of models exported in .kvx
goxel.zip (1.5 MB) slab6.exe (140 KB)
image

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].
To duplicate objects select the area with the space bar and press D or i if you change the controls.
To put pictures press P or V.

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))
}

—This text is for for the players use a specific weapon—

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
}

8 Likes