This article was converted from a previous version of TWHL and may need to be reviewed
- The formatting may be incorrect due to differences in the WikiCode processing engine, it needs to be revised and reformatted
- Some information may be out of date
- After the article is re-formatted and updated, remove this notice and the Review Required category.
- Some older tutorials are no longer useful, or they duplicate information from other tutorials and entity guides. In this case, delete the page after merging any relevant information into other pages. Contact an admin to delete a page.
A quick and dirty guide to perfect level changes
Level changes are often over explained, and too complicated for their own good. There really is nothing to them and if you follow this tutorial step by step, you should have absolutely no trouble whatsoever.
1. A level change is, simply put, a transition or displacement from one map (.bsp file) to another. And the reason you're reading this is because you're lost or trying to get a level change to work properly.
2. Why do I need level changes? I can get by without them, and save my self a lot of hassle...
Ok... Half-Life maps have limits. These limits should
NEVER be reached or pushed, You can read more about these at Slackillers web page, go to the Tommy14 link and look at the error tutorial: general MAX_MAP limits.
3. What does that have to do with level changes?
It means, that if your levels are getting too big you should consider splitting them into 2 or more separate levels. This can be really useful for reducing r_speeds when working with two or more complex areas, or just to help you keep track of where you are in your map. Huge detailed maps are really difficult to work with in Hammer, as you probably already know.
4. Tell me what I need to know...
There are 3 types of level changes:
Seamless: The simplest level change you can have - walk through a corridor, see some loading text, end up in another map, but your position in the corridor and the environment around you does not change. The place you end up in is a carbon copy of the place you have come from.
Displacement: Same as above only the environment changes - i.e. go through a corridor in a lab and end up in your office/classroom searching for the 'check for problems' button in your life...It is a bit like teleporting, but you are doing it across maps.
One-way: You can get there, but you can never return.
6. So, What exactly do I do for a simple seamless level change?
Before we start these things are very important:
NEVER test level changes by running your map through Hammer using F9 or running it through any other editor, always use the
console to load your map or start your map from a shortcut. You can get more information on how to do this by reading
SKEEVE'S How to run a hl.bsp file tutorial.
ALWAYS put names of maps and info_landmarks in
lowercase!!! And do not use spaces or other characters except numbers and letters,
_ underscores are ok.
Right.
The only entities you'll need - since you just want a simple level change - will be
tigger_changelevel (one in each map) and an
info_landmark (the same one in each map)
Start by making a suitable corridor:
A suitably suitable corridor VERY IMPORTANT STUFFThe info_landmark:
The info_landmark sets up a constant point of reference in the origin and destination maps. It must appear in both maps otherwise the level change will not work correctly. The origin and destination info_landmark must both have the same
Name (targetname)So basically, it's the same info_landmark in both maps.
Landmark The
Origin map trigger_changelevel:
Set these properties you need to change:
New map name:
map2Landmark Name:
landmark1 (or whatever you called your two identical landmarks - one in each map)
The
Destination map trigger_changelevel:
Set these properties you need to change:
New map name:
map1Landmark Name:
landmark1 (or whatever you called your two identical landmarks - one in each map)
Trigger Now, compile the maps through hammer or any other front-end compiler but remember not to run the game!, fire up hl with the console, and test the transition. If you did this correctly you should seamlessly jump from one map to the next no matter how you enter the trigger_changelevel.
One Way Changes
You would think a one way level change would only require one trigger_changelevel?
Wrong.
You have to set the level change up exactly as you would for a normal change. The difference is that in the second map, reduce the size of the trigger_changelevel brush and move it somewhere that the player cannot get to it. That is what stops the player from going back. You can also check the
Use Only Flag just to make sure those NoClipping players still can't get back.
Well done, now drink some water - it helps re-hydrate your brain.
I have three maps and the player traverses them in this order:
Map a
Map b
Map c
The transition between Map b and Map c didn't work because the trigger_changelevel from "map a" to "map b" had a wrong "New map name", like "Map C". So I guess The Value you type in for "New map name" is Case-Sensitive.
The transition from 1st map to 2nd map worked correctly.
But when I tried to return to 1st map, it didn't worked. Why?
On the superior of the screen it say : CHANGELEVEL Map1 Map1toMap2
The error was solved when I moved the trigger a bit more far than the other. Thanks for read.
EDIT: fixed it. i put a info_player_start in the second map and it was interfering.