# Mapping (testing guidelines)

This section will go over some instructions and tips for testing your map.

## Contents

1. Installing your map to play it
2. Initial notes
3. Cheat commands

## Installing your map to play it

Your map at the very least will consist of a BSP file, but may also come with a range of configuration and resource files depending on the level of customisation you've taken with your map. Once your map is compiled and ready to be played for testing, you will need to copy various files to your game folder.

- Do not copy any unofficial resources directly into the svencoop folder. To help keep your game files clean, use the svencoop_addons folder. The game engine is perfectly capable of loading maps and their contents from this location.

This diagram shows how your map content should be laid out in your game.

Back to the top...

## Initial notes

Back to the top...

## Cheat commands

The cheat commands built-in to Sven Co-op can only be used under certain conditions:

- If the server is for Internet players, it cannot have a maximum capacity of more than 3 players -- LAN servers do not have this restriction.
- If CVAR "sv_cheats" is 1 anybody can use cheat commands.
- If CVAR "sv_cheats" is 2 only server administrators can use cheats, and will not be subject to the server capacity restriction.
- If CVAR "sv_cheats" is 255 anybody can use engine diagnostic settings (such as gl_wireframe) even in a multi-player game.

If a cheat command is attempted and these conditions are not met the player is told why, and the server will log this event (or print it in the console if logging is disabled).

Cheat commands are useful for private testing sessions, particularly for map authors as they provide some useful controls and limited debugging capabilities. If this is for you we advise you check the provided file "map_test.cfg" as this contains a range of command aliases and bindings to help you do this.

Here is a list of cheat commands currently available:

Command | Parameters | Description
--- | --- | ---
Basic modes
godmode | 0 = disable 1 = enable | Enable or disable god mode. You will be immune to all damage against your health, but not HEV battery. A map entity can still forcibly kill you, and the kill command will still function as normal.
cl_noclip | 0 = disable 1 = enable | Enable or disable no-clipping mode. You will be flying instead of walking, and can move through solid matter like a ghost. You will not be non-solid yourself though, meaning NPC's can still touch/damage you, and you will still interact with brush based triggers.
cl_notarget | 0 = disable 1 = enable | Enable or disable non-targetable mode. You will be completely invisible to all NPC's, though they can still hear you (they will try to find you), and can damage you by accident.
cl_nonsolid | 0 = disable 1 = enable | Enable or disable non-solid mode. You will become non-solid like a ghost, thus players, NPC's, and brushes can pass through you without touching/damaging you. If something moves inside you and stays there however, you will be unable to move away as that other object is still solid. You will also not take damage from solid type objects (bullets/blades/etc), but particle type damage (explosions/fire/freeze) will still hurt you.
Equipment & status
give | Weapon/ammo/item name | Give yourself some equipment (weapons, ammo, and items). Names should reflect the entity name of the equipment, for example weapon_shotgun, ammo_rpg, or item_longjump. You cannot use this to obtain item_inventory based items, use the trigger command instead. You can technically give yourself any entity (such as a monster), but be warned the effects can be anything from humorous to catastrophic.
giveall impulse 101 | N/A | Give yourself every weapon in the game with some ammo for it. The minigun and shock rifle are omitted due to their exclusive usage constraint.
givepoints | Number | Give yourself score/points. You can use a negative value to deduct points.
reviveme | N/A | Revive yourself if you've been killed. You will be revived with half health.
healme | N/A | Fully restores your health.
chargeme | N/A | Fully charges your HEV suit battery.
Map testing/debugging
ent_name_ahead | N/A | Shows the class, target, and model names of the entity directly ahead of you.
ent_trigger_ahead | N/A | Triggers (toggle) the entity directly ahead of you.
teleport | Co-ordinates as X Y Z | Teleport yourself to specific co-ordinates.
trigger | Map entity name, Trigger type, and Entity value | Trigger an entity in the map by its target name. The trigger type and entity value are both optional. Trigger type can be on, off, set, toggle, or kill. The entity value is commonly used in conjunction with the set trigger type, for example with a game_counter entity. The kill trigger type deletes the entity. This is best avoided for all but map authors, or those with good knowledge of the map in question. You as an entity will be passed to that entity as its activating and calling entity.

Back to the top...