Mapping is at its core about knowledge, the editor, while very powerful, isn’t very user friendly, the extent of your fluency with it dictates how strong of a map you can create. You might be the Michaelangelo of level design, but without knowing how to properly make a patch mesh, use shaders, or cylinders you’re going to be reduced to making poorly lit boxy rooms. If you spend 10 hours doing research, you’ll probably learn techniques to cut your 30 hour map down to 15, so it more than pays off for itself. Learn your editor.
Very fortunate for us Radiant is way older than JK2, and there is literally tons of documentation on Radiant, due to the Q3A engine’s popularity there might be more documentation on Radiant than any other map editing tool. With that in mind you need to know what to look for. Most tutorials are about Quake, as that’s where Radiant was first implemented, for the most part these tutorials apply in their entirety to JK2radiant, the rare exceptions are references to textures or shaders which didn’t necessarily apply to JK2. Another exception would be where some of function textures ended up.
However, all in all the tuts are very straight forward, if a tut in question refers to a shader or texture, unless it’s a system shader (Like no-draw, clip, caulk, etc) you might not have it, and will need to figure out another way to go for the effect you want.
I will be using links to provide answers, in the situation where it applies directly to JK2, I’ll answer directly. Don’t pass over a link because it refers to Q3a, I guarantee your answer is somewhere in there. All of my links, unless links to pictures, will be demonstrations in the Quake 3 paradigm.
Tip:Built into your internet explorer is the function "find" hit control F when you load one of these pages, for example, you can try control + F and type in shader, and it will return places on the html document that have the word shader mentioned, very useful when scouring huge FAQs and tutorial lists.
So let’s start:
Where do I get JK2Radiant?
You’ll find what you need here:
Read the readmes in those files for the full rundown on how to properly install.
Now, your entities should be screwed up, this happens to just about everybody, so here’s what we’re going to do.
Whenever I right click to bring up entities/textures etc there’s nothing there, what’s wrong?
The issue is that Radiant is looking in the wrong spot. What you want it to find is your MP_entities file, or your sp_entities file.
Go up to “File” then click on “Project settings” and change it proper like so that it refers to the exact position of where your entities file is. Now restart Radiant. This is what mine looks like, yours may look different if you installed elsewhere:
Basics and definitions
How do I start making stuff?
There are literally 50 some odd tutorials on making your first room, look here:
Note that your first couple of projects shouldn’t be too ambitious, a lot of people will become frustrated if they bite off more than they can chew. Start simple, learn the basic skills, then move on to huge sweeping rooms.
What’s a brush?
A brush is a multi purpose term used for the various planes that compose a level. These are covered with textures and you’re given something to look at. For example a square room would have six brushes that compose it, the ceiling, the floor, and the four walls.
What is a texture or shader?
Textures and shaders are almost identical. A texture is the art that covers a brush, a four sided brush covered in a crate texture will look like a crate, a rectangle set into the wall with a control panel texture on it will look like a control panel. A shader is a texture with a script attached to it. A shader can do a wide variety of things, it might be animated to tell the texture to move in a certain way, or it might be a function shader, such as no-draw, which is telling the engine to not draw the brush/brush face to draw a certain object. When loading up your textures, you can tell a shader apart by the white outline surrounding it.
What on earth are entities?
Entites are a ton of things, basically different kinds of functions to place into your map. If something in your map isn’t a brush, curve, or a texture/shader it’s an entity of some sort. Entities can be anything from an inserted model of a tie fighter to a light to a shield pack to a door inset with breakable glass. Note that some entities (Such as doors) will require you to select a brush as an entity function, such as a door requiring you to actually have a brush that composes the door, others such as buttons or fans or any such will require you to tie a brush with an origin or another trigger.. When you install an entity hit the “N” button, this will bring up the entity window that allows you to edit your entities, by default your selected entity should be present, in the center view you’ll see all the various functions an entity can entail.
More info on entities can be found here:
What is a model?
A model is a pre-generated set of polygons that you can insert into a level. Models have a lot of advantages, if you’ve ever tried creating your own generator or tie fighter or anything from brushwork, you’ll find yourself frustrated. Fortunately models are available in all sorts of shapes and sizes, and due to the popularity of Star Wars, a lot of free models exist on the net that you simply need skin.
The major advantage to using models is time, it saves you a lot of it, the second major advantage to models is that you can get a hideously complex model in a level with literally thousands of polys and it won’t lag the player half as bad as if you made it out of brushes. A few disadvantages come along with models (such as their own vertex lighting thus making them look a little strange in some lighting arrangements) but by and large models are almost always
preferable to using brushes for the same effect, generally it will look better too.
Now, here’s how to insert a model
Why won’t my model show up?
So you’ve right clicked for the entities and sat on misc_model and you’re getting a pinkish square and that’s about it. Well, that’s because Radiant is dumb.
Well, not entirely, it’s just looking in the wrong place. Here’s what to do: Right click misc_model and then hit the N button, go to insert your own model, minimize the entities window and you should be prompted with a windows file search with Radiant asking where your model is, go to the models directory under your base folder and find your model in question.
Now, it should say something like C:/program files/lucasarts/Jedi Knight 2 Jedi Outcast/base/models/blah blah/blah blah/yourmodel.md3
Roughly, what you want to do is go back to your entities window (N) and delete everything before “models” so it ends up looking like:
models/blah blah/blah blah/yourmodel.md3
As an example take a look at the inserted probe droid head on my hoth duel level, Frostbite:
For more information on models look here:
My model is intangible, why am I falling through this tie fighter?
Models by default have no substance, if your model needs to be solid, then surround it with a brush and define that brush as "clip" from your system textures. It might take multiple brushes of multiple faces to get the clip effect you want. Note that the clip brush will not be rendered, it will just lend an invisible solidity to the model. (Note, there is no need to get overly complex with clip brushing, it's just unnecessary overhead and can make bots insanely stupid if you were to cover something like the probe droid head with 50 brushes of 5 faces each to properly simulate. It's really not necessary, you can just as easily do it with 4 brushes with 5 faces, a player can bounce up and down on that droid head for an hour and not figure out that the model is actually covered in clip brushes.)
Is there a list of models?
Why, yes there is.
Some of those do not function properly, but the majority do.
(Compilation of models by RelFexive.)
Is there anyway to select an individual face of a brush to apply a texture just to it and not the whole brush?
Control+ Shift click a brush face to individually select that face. A nice tip to speed up your mapping process is if you have a middle mouse button is:
Control+Shift click a face, and then control+shift click + middle mouse button another face, and you can just click away applying the original texture you selected.
When I move a brush or mesh, my texture stretches, is there anyway to the fix this?
Select the brush face via control+shift+left click, and then hit the s button. This will bring up the texture information, hitting "natural" will apply the texture as it's supposed to be applied naturally. You will also see a wide variety of selections there, such as shifting the texture if you want to stretch it and make it larger on a face.
How do I use my own textures?
Create a folder under your base/textures directory, drop your textures in there, the next time you load radiant you should have a new textures category which contains the textures you dropped in that folder.
They still aren't working
It can be one of a number of things:
Try the following:
Make sure your texture is saved in an increment of 2, 256x256, 512x512.
Make sure it's saved in a 24 bit jpeg, or a 32 bit tga.
When you load your map to try and test the textures make sure you input sv_pure 0 into the console, this is the only way JK2 will recognize the textures if they aren't in a pk3.
If else fails try this site: which contains a number of Q3A textures, and try applying them first before you try your own textures.
Entities and function textures
All the big mappers have Caulk in their maps and screenshots, what is Caulk, do I need it?
Any map that wants to perform well needs caulk. Caulk is basically a “Do not enter” sign for the engine. If you place caulk on surfaces that won’t be rendered anyway, it lets the engine know they are of zero importance, and to disregard them, and thus, your players will see a significant boost in their FPS. In simple maps it might mean one frame per second, in very complex maps it can mean literally dozens of frames per second.
For a better understanding of caulk, look here:
How do I make a sliding door?
Draw a brush, right click with it still highlighted and click func then func_door. That brush is now defined as a door entity. From there there are a bunch of variables you can define. Hit the N button and bring up the entities window, the most important one is “angle” this is the angle your door will slide when someone is close to it. If you look in your lower left corner you’ll see an eight pointed diamond of buttons with up and down on the side. These are examples of the different angles. If you’re facing degree 180, and the door is defined to slide at 270. You can move your entity window around a bit to get an exact view if need be to see which direction your door will slide.
How do I make an elevator?
Create your brush, then define it as func_plat, from there, hit the N button, and bring up "height" this will determine the height your elevator ascends to. Height cannot be a negative number, if you want your elevator to descend, from it's default position use a func_door and indicate it's angle to be down.
Correction by Vorax
How do I make a two-way elevator?
First build your brush that will be the platform. Make it a func_door with an angle of -1. Add a soundset if you wish, I used impdoor1 for mine, and make the speed 250-300, slower or faster if you wish. Also do a targetname like this:
And also create a NEGATIVE lip value that's nearly equivilent to the height of the area the platform moves in. You'll have to give or take a few points to get it to work how you want it.
Now, create a trigger_multiple that will surround the entire area of the platform, JUST the platform. The key to placement is this:
When you come to a spot and the elevator is down, you want it to come up to you correct? Well, work around and see where you want to stand so that it will return when it needs to. Here are a couple screen shots.
Now with the trigger, make the following keys:
Now what this does is important: The platform starts at the bottom...always. When you enter the trigger, you have 1 second before it goes up. This is plenty of time, but you need it, otherwise you'll never get on the thing! The wait part will mean the platform will wait 4 seconds at the top before returning to the bottom, and the target just connects it to the platform itself.
Notice in the first screen shot how the trigger goes a little onto the entrance at the bottom, and at the top overlaps also. This will make it so that when you go in that area, the platform will function after a delay. So at the top, you touch the trigger, there is a brief delay, and it comes up to you, stays for 4 seconds, then takes you to the bottom. On the bottom, you enter the trigger and get on, and it takes you to the top, waits 4 seconds then returns.
The func_plat isn't how Raven did these type of platforms, and I just thought I'd give everyone directions on how to finally do it so it works like in SP.
Originally posted by [RDH]Diversion in this thread:
How do I make breakable glass?
Draw a brush, and cover it with a glass texture. There’s a wide variety of these, type in “Glass” in your texture/shader window in the field just below the button to “show shaders” and you should see a wide variety of these. (Some folks recommend putting no draw on the edges, so only the two surfaces of the glass are rendered. Otherwise you get chunky looking edges.) Now, with that brush still selected right click, go to func, and click func_glass. You can use “health” as a key/value combo to boost the health of your glass. From there you can also change the sound and a wide variety of other values.
How do I make a func_train work?
First, make the brush that is gonna be your train(a platform, elevator, etc.). And then make another small brush placed in the middle of the train and texture it with the origin texture found in textures>system
. Then while both brushes are selected make them a func_train. Place a path_corner entity at the center of the elevator just as you did the origin brush, that's where it will start. then continue placing however many path_corner entity's that you need for each stop of the elevator.
Now, while nothing is selected, select the func_train and then the first path_corner entity and press cntrl+k
to target the train to it. Then deselect everything and now selct the path_corner 1 and then path_corner 2 and press cntrl+k
to connect the path_corner's. Repeat for all your path corner's. Set wait values for the path_corner's so it will stop for an x amount of time at each one and set the desired speed as well.
And that's it, you're done. Just be sure to link the last path_corner back to the first one or else if i'm not mistaken it will just stop at the last one and never move again, at least not untill you load the map again.
Submission by Manquesa
How can I insert lightning or other effects?
Right click and insert an fx_runner, under fxfile insert env/electricity, other effects are available as well. The default for all effects seems to be pointed straight up, so you need to target it. Right click again on the XY view and select a target_position, name it via the targetname key/value combo (such as targetname elecaim1), and then point your fx_runner towards the target position (target elecaim1.)
You said there’s other effects, is there a list?
Why yes there is.
(Compilation of effects by RelFexive.)
I’ve made a tall level and tried it out and I can’t get that neat falling to my death animation that I see on maps like CTF_Bespin, how do I do that?
Draw a brush that extends the length of the area you want your falling area to be in. Note that you only have to cover the horizontal plane, you don’t need a very tall brush, only one that people can fall into, it can be an inch thick if need be. Now, extend that brush out and make sure it covers your area, now, right click and go to trigger, trigger_hurt. Then go up to textures and select “Trigger” to cover your brush. Hit the N key, in the key field type in “Dmg” (Not damage) and in the value type in –1. Now, whenever someone hits that trigger it will trigger a death animation which they will not return from. You’ll get that falling scream, locked camera, the whole shabang.
How do I light my level?
If you right click, and scroll down you will see an option for lights. Hitting the default “K” button will bring up an option to allow you to edit the color.
You can also use the following key/value combos “Light/X” where X is the strength of the light (300 is default) You should be able to look over the key list yourself by hitting the N key.
Correction by Vorax
How do I make a spotlight?
Follow the above steps, but now, put an info_null on the wall/floor you want your spotlight to go to, now select both the info_null and the light and hit control + k, you will now see a line connecting the two. “Radius/X” where X is the radius of the light, 64 is default will change the radius of your spotlight.
Load up your map, if it’s not working, I seem to have issues if they are too far apart, so just get them a little closer together.
More info on spotlights available here:
Correction by Vorax
How can I insert a sky?
Draw a horizontal plane at the very top of your level and cover it with a sky shader. What you want is are the little green squares, that become blue when you click on them, surrounded by a white outline. What you don’t want to cover your sky with are the textures that you’ll see.
For an example look here:
What you do not want to see is here:
My sky still is not working, help!
Make sure there are no brushes further beyond your sky, it should be the furthest brush you have.
In the stealth level in single player there's a light switch that turns the lights off and on, how do I make that?
This is currently an unknown dilemma to the mappers here and Massassi.net, your guess is as good as mine. Previous versions of the Q3A engine didn't offer this feature at all, JK2 however seems to have undocumented improvements to it that we're still learning.
Should you discover how to make a light switch, please post in this thread so I can update this and give you credit. Inquiring minds want to know.
Does JK2 offer dynamic lighting?
Yes and no. The Quake 3 engine does not offer the true definition of dynamic lighting, JK2 however is updated to offer a slight bit of dynamics in map design.
See beneath the technical garbage below for how to make pseudo-dynamic lights in maps.
Begin technical garbage here:
Be forewarned that using the "pseudo-dynamic lighting" that JK2 offers is very detrimental to frames per second. (FPS) Doing tests on my own in a reasonably rendered map my fps was about 75% of what it normally is with these lights, and multiples close together lowered it down to half and this is on a mid-high machine. Some folks have reported zero FPS hits using this method, so it might just be video card specific. I suspect the pseudo dynamic lighting is multiple lighting compiles within certain vis ranges, and them being interchanged as necessary and thus isn't truly dynamic (Which is why you only see it on a mapping level, the lightsaber gives off no ambient light, muzzle flash or energy balls give off zero light, etc.)
How can I make a candle flicker, or a strobe light?
You need to use the key "style" and a value:
1: Flicker 1
2: Slow Strong Pulse (full light to black)
3: Candle 1
4: Fast Strobe
5: Gentle Pulse
6: Flicker 2
7: Candle 2
8: Candle 3
9: Slow Strobe
10: Flourescent Flicker
11: Slow Weak Pulse (full light to faded light)
12: Fast Pulse
13: Disco Madness
List originally posted by Richdiesel in this thread: http://lucasforums.com/showthread.php?s=&threadid=54447
As posted above, these may give FPS hits to some users, as such due to the performance importance of multiplayer, and the wide variety of video cards, I do not recommend using pseudo dynamic lighting in multiplayer levels.
Compilation and errors
How do I play on my map?
What you wanna do is go up to the BSP halfway across your toolbar, and you’ll see a wide variety of options, you will need at least two, these are “bsp fullvis (nolight)” and bsp fullvis (EXTRA). Selecting either will start up a dos prompt that is your map compiling. You can watch it, or you can go afk if you’re confident your map is stable, if it’s a small map it shouldn’t take more than a minute or two, very larger maps with complex lighting systems under fullvis can take hours. The “no light” setting will result in your map being very very bright, this is still a good quick compile so you can look at your textures or brush work, however, your finished map should be the standard “bsp fullvis.” Also, if you wanna test out your FPS and other issues, it should be “bsp fullvis (EXTRA)” for a realistic simulation.
Once you have finished your compile, launch jedi knight, and open the console via shift + ` (the key to the left of 1) If it's a multiplayer map type sv_pure 0 and hit return, then type devmap yourmapname and hit return. Single player just requires you to type devmap yourmapname Yourmapname will be whatever you have been saving your map as, devmap will make it so cheats are on so you can experiment in different ways.
Correction by Vorax, note that BSP FULLVIS (Extra) is used by JK2 radiant, not standard fullvis
So I made a dinky test map and lit it, compiled it, and tried to test it and the whole place is lit up like times square and doesn’t have any of the light effects I inserted, what gives?
This is simply a bug in the compiler. Any map smaller than 100k will result in you having issues with the lighting. It’s just a bug. Larger maps will not have this issue, and considering most serious maps that are released are well over 100k due to various details of the level, it’s not really a concern.
If you absolutely must overcome it, there is a solution:
Take your little square, and move further back on the map, and in a corner not too far away, make yourself a “spur” a spur is a complex bit of brushwork with the sole purpose of increasing the size of your .bsp. In the end it will look something like this:
Uh, my compiler told me to speak with John Carmack, do you know his number?
It means something is really, really wrong, and Radiant is telling you to see the boss.
To find out your specific problem load the map and you will be getting booted, take note of your error message.
My single player map is loading as MP/My MP map is trying to go SP
First: If loading an MP map and it won't let you make sure to have sv_pure 0 typed in before you try and launch the map.
If that doesn't work make sure you have your project settings right in JK2Radiant, MP maps must use MP entities and likewise for SP. If you have built the Mona Lisa of maps on the wrong entities set, worry not, load up a map under the right entity settings and go up to load, and then load your map, it should import your map leaving behind the entities which do not apply in the current gametype.
If that fails you can load your original map, make a huge brush that surrounds the entirety of your map, then go up to selection, select and then select complete tall. That will copy every thing within that brush, now you open up your next map with the right entities (it can be blank) and then hit yes when it prompts you to ask if you want to copy the selection voila it should paste it in, or at the worst require a control + V to put them in there. (Note, copying and pasting very large maps will generally cause radiant to crash, the first method is best.)
How do I make that screenshot that shows when my level is loading?
When you are about ready to compile your map, drop in a single info_player_deathmatch entity. Now, use the angle pad at the lower left of your entities menu to select it's facing so it is facing what you want to take a screenshot of.
Compile and load your level.
Now, open the console and type levelshot and hit return. It will pause for a moment and then say it took a screenshot, and where it saved it. (Default should be base/levelshots/yourmapname.tga)
Now, reload your level, you should now see your screenshot as your screen loads. This will also tie in perfectly to the default spectator spot and deatmatch spot so you get that beautiful smooth transition from the level loading screen to the in-game engine. Make sure to include the levelshot when you are creating your pk3.