The

EFRadiant

Tutorial

  • Installing Game Developer Kit (GDK)
  • Setting the Playmode
  • Starting EFRadiant
  • Configuring

  • File Options (Save, Load, Open...)
  • Loading Automatic Backups (Source Safe)

  • Constructing A Room
  •   CSG Options
  •   Textures
  •     Shader Manual (Online)
  •   Connecting Rooms
  •   Circular Brushes
  •   Different Brush Types
  •   Curves

  • Entities
  •   Light
  •   Player_Start
  •   Func_Door
  •   Lifts Elevator
  •   Pendulums & Force Fields
  •   Transporters
  •   Level Transistions
  •   Creating Captions

  • Compiling
  •   Errors
  •   Beta Testing
  •   General Tips & Square Numbers's
  • Links and F.A.Q.
  • PK3 Files
  • Multiplayer: AAS Files

  • Contact Information
  •   Raven's Editing Message Board
  • Copyright Information

  • Installing the GDK
    The GDK (Game Development Kit) is the package of utilities and tools that you can use to make your own levels,
    and mods for Elite Force.

    Note:
    A simple directory structure is much like
    C:\games\startrek\
    An example of a non-simple directory structure would be
    C:\program files\startrek

    Elite Force should be installed into a simple directory structure; You must install the GDK in the game directory.

    This is because it is easier for the computer, and all it's mix-matched versions of software, to access properly.

    If you currently have the game and the editor installed in a complex directory structure and it works then it might be best to leave it alone; However if you are having problems (or wish to avoid them) a simple structure is probably best for you.

    Setting the Playmode
    This tutorial specifically covers Singleplayer as a mode but it does frequent some vital information on Multiplayer. Since I don't play well with others I choose singleplayer but I explain below, explicitly, setting up for either.

    Open the tools directory (the folder where EFRadiant is installed) and look for two .def files.

     Single Player
         
    If you are going to make a single player map rename the HM_entities.def to HM_entities.bak and make sure that SP_entities.def exists as such.

       Multiplayer
         
    If you are going to make a Holomatch map you should rename your SP_entities.def to SP_entities.bak and make sure that HM_entities.def exists as such.

    You should NOT delete your .def files unless you really want nothing to do with the other mode of play as you will have to reinstall the GDK in order to gain back the deleted def file(s).

    Starting EFRadiant
    The editor, being located in your tools sub-directory of your Elite Force folder, will look like the program below:

    Once you Double-click on the EFRadiant.exe icon you will be in for a wait, even on fast computers, as EFRadiant is loading
    all the information it needs from your .pk3 files.  These PK3 files contain the game's textures, maps, sounds, and other needed files.
    The editor only loads up shaders, texture directories, anything else is loaded when it is specifically requested by the user in EFRadiant.

    We'll get into how you can edit your own PK3 files using a file compresser such as WinZip in a later section.

    Note:
    Need a file at EFRadiant's startup?

    If you just started EFRadiant for the first time you might get a message that the program couldn't find its
    qe4 file from the BASEEF/SCRIPTS folder of your game directory.
    You will be relived to know that I have included it in this package and you can access it here.
    (You will need to extract the file with a compression utility such as the preferred Winace, or even Winzip.)


    Configuring EFRadiant
    After the program finishes loading all of the information from your game files it may need a .qe4 file. This situation is explained in the above section Starting the Program. If you recive the following prompt as expressed in Figure 2.1 (below) when EFRadiant loads then you need to get the .qe4 file.

    Figure 2.1

    Upon EFRadiant's first start you will probably also get a preferences window similar to Figure 2.2 (below). If not then press 'P' and simply fill in the Preferences window relative to the Figure 2.2's settings.

    Since every computer system is setup a little different your directories and settings may vary but should be in the range of those listed in the figure.

    Figure 2.2

    Go to File » New Project, a window should pop up asking for a project name. Simply type MyProject (or whatever) then press Enter.

    The bar accross the top of a program that usually reads something like : 'File', 'Edit', and 'Help' is a program's menu. The picture below (Figure 2.3) shows EFRadiant's menu. The menu is where most of the non-building mouse work will  take place.

    Figure 2.3

    If you didn't see the preferences window pop-up you can click Edit » Preferences or just press 'P'.

    File Options (Open..., Load..., Save, Save As..., Save Selected...)
    You should know that anything in level design will be time consuming whether it's the actual level designing, or the planning, or the proccess of compiling your map into a playable version of the game. You need to know how to save your map often in case your system crashes, which sometimes, usually at the most inconveinent time, it does.

    Open Opens your previously saved maps; very simple. Click on the File » Open....
    Load Load adds your a saved map into your current map. Click on the File » Load....
    Save Saves your maps to the hard drive for later retreival through the Open option. Click on the File » Save.
    Save As Saves a new copy of your map to a different location on your computer. Click on the File » Save As....
    Save Selected Saves any brushes and entities that you have selected. Click on the File »Save Selected....

    If you are having trouble so far review the windows help in your windows /help directory you shouldn’t even be this far if you need help with the standard functions of Windows.

    As you may have noticed in the begining when you set your preferences for EFRadiant there is an AutoSave option. This saves files under your BASEEF/MAPS/SNAPSHOTS directory. As you may recall from the Preference Window you can also set the maximum files so that your computer's free space doesn't become totally consumed after a few weeks of level editing.

    Retrieving backups is a little bit more difficult than just loading a map file. You need to rename the snapshot file to a .map file, move it to the BASEEF/MAPS folder and then open it in EFRadiant.

    In EFRadiant click on SourceSafe » Configure. From there it’s pretty self explanatory but for the sake of examples I have mine setup like this:

    INI File: \\RAVEND\VSS\SRCSAFE.INI
    Project Path: $/stvef/Baseef/Maps
    SS – Checked (SourceSafe active)
    BehavEd Path: c:\games\stvef\tools\BehavEd.exe

    Of course you will need to modify this to meet your system's settings.

    Constructing A Room
    A Brush is a block/shape that you draw when you drag the mouse in the grid view.
    These shapes maintain a form such as a circle, triangle, or square but never will a single brush be capable of making a star or bend as the brush's basic shape cannot have any points that go toward the center of the shape and then return outward (also known as doubling back in on itself).

    However, as you might have guessed, you can have doubling back effect by using multiple brushes.

    Making a brush is easy: In the larger grid view Left mouse button and drag until you see something similar to the Red box below in figure 3.1.

    Figure 3.1

    DESELECT THE BRUSH(ES) by pressing the Escape button.
    SELECT THE BRUSH(ES) by holding down the Shift button and Left-Clicking on the brush that you want to select.

    Deselect the brush. Reselect the brush, now position the mouse near the side of the brush and drag it until it looks something like what Figure 3.2 (below).

    Press the Space Bar once to copy your selected brush. This tool quickly copies any brush(es) you might have selected and moves them away one grid unit by one grid unit and selects it for you. You should also notice that this deselects anything that you might of had selected before it.

    Note:

    Selecting a brush is the same way you would select an entity; de-selecting
    a brush is the same as you would were you de-selecting an entity.

    Figure 3.2
     

    Now press escape to deselect the brush and create another brush by dragging from one point to another and position it so that the above screen is similar to your EFRadiant's view (Picture Assistance).

    You might want to experiment with the:

    Directional Rotations:

    Selection »Rotate » Rotate X - Which will rotate your brush along the X axis.
    Selection » Rotate » Rotate Y - Which will rotate your brush along the Y axis.
    Selection » Rotate » Rotate Z - Which will rotate your brush along the Z axis.

    Warning:

    Do NOT attempt to use the above rotation method  on your entities.
    It will screw up how most entities work and can cause errors that
    can only be fixed by re-building the map.

    As you experiment with rotations you might notice an option called 'Arbitrary Rotation'. Hold off on using the arbitrary rotation because that process often morphs your brushes into different shapes than you want. It also adds a possibility of leaks if you are doing the rotation with walls.

    Select any of the brushes you just made and press the Backspace button to delete it.
    It should just poof away into oblivion.


    Now let's see what your map looks like from some different views other than the XY Top view. Hold down the Ctrl and Tab buttons simontaniously until you see that the view has changed into the XZ Front view. Press the Ctrl and Tab buttons simontaniously again until it cycles through the three views a few times.

    As of now your creation when viewed in the 3-D view, being the view above the texture view, probably looks similar to Figure 3.5 (below).  If you can't see anything in the 3-D view you should use the arrow keys to turn the camera and A and Z to rotate the camera upward and downward.

    Figure 3.5

    Switch it to the YZ Side view and use the same brush making skills that we learned earlier to make some walls to your room.

    Might start by selecting the current walls and dragging upward 256 units (from the Z view) to make them higher like walls rather than baseboards.

    Note:

    Press Q to turn on a grid assistance that will show you the exact measure of your currently selected brush(es).
    Hold Shift + Q to turn off this option.  It is recommended you leave it on.

    You probably know that clicking inside your brush and holding while your move the mouse you can move the selected up and down, however a more precise method to move your brush up and or down in altitude is by pressing the + and - key of the keypad.

    Notice that in the XY Top view you don't see the brush moving up or down because the XY Top view is a 2D representation looking down also known as a 2D Birds-eye view. You might have noticed by now that the side panel has a stricktly Z view, meaning it only sees brushes move up and down (Picture Assistance).  In the end your 3D view should be similar to that of mine shown in Figure  3.6.

    Figure 3.6


    Clipping brushes is where you can slice a brush along a line to make slants. You select a brush and press X to toggle the clipping tool. Left Click anywhere near (or far) from the brush in the grid view to spawn the first point. Then make another point somewhere else on the grid to cut the brush along that line. The yellow highlighted part is the part that will remain. However, rather than change how point 1 and point 2 are situated to select the other half you can simply press Ctrl and Enter at the same time to switch which side gets diced.

    You can also cut both sides of the brush by pressing shift while hitting enter. This will split the brush into two according to the specifications of your points (Point 1, and Point 2).

    You can also cut a brush along a third axis making for a truely unique brush--just click a third time before you press enter to finalize. You probably want to do this before your maps get really complex because finding each point while staring at hundereds of useless ones can get confusing.

    Do not attempt to clip models or curves because the editor will crash.
    Speaking of crashes, save often because you can surely spare a few megabytes
    of hard drive space rather than spending hours remaking a map that crashed
    without a recent backup.

    CSG
    CSG_Subtract
    is the method of selecting a brush and deleting any other brush parts inside of it. In other words your selected brush, when using CSG_Subtract will delete part of (or all of) the other brush(es) occupying the same space depending on the space the selected brush occupies. This does not mean that it works all the time, for some textures it will not allow you to cut using this method.
    If you cannot get the CSG_Subtract to work then you will have more work to do by manually forming your walls around other objects.

    The main window, the largest one with the grid view, is really the only one you should use for editing anything because it allows for control over the brush(es) that you are working with, compared to the control that you get with the 3D or the strict Z view.

    If you CSG_Subtract and you get a small piece left over that you can barely select without zooming in then it is because you didn't drag your 'cutting brush' to meet the exact space of the other brush that is being cut.

    In other words if you have a square brush that is 12 units wide and you use it to CSG_subtract or cut another brush that is 12 x 12 x 12.0001 x 12.0001 then you will have a little 12 x 12 x .0001 x .0001 brush remaining from the brush being subtracted from after the cut (as well as your originally selected brush).

    CSG_Subtraction Tips:
    Make sure you have one (or more) brushes selected, these are
    the 'tools' that will cut holes in the unselected brushes that are to be
    subtracted from.
    Any brush you select will be the brush that will be cutting another brush.
    Sometimes the CSG_Subtract method works and it does it so
    efficiently that the computer doesn't choke for a second. Try moving
    the selected brush (the slicer) to discover if the
    surrounding brushes have been modified. If there is a hole where the
    slicer was then CSG_Subtract has achived it's goal, otherwies you
    will need to reattempt it or manually perform the subtraction.


    CSG_Hollow is the method of telling the computer to make the brush hollow for you.
    This process will make six brushes out of a simple rectangle (your hallway brush being the simple rectangle).
    Click Select » CSG » CSG_Hollow and watch in amazement as your hallway brush truely becomes a hollow hallway.

    You will need to neaten up your rooms by selecting the hallway walls, excluding the left-over end walls. Once you have both the hallway's walls, ceiling, and floor and you are in the XY Top shrinking them so that they just touch the outsides of your rooms.

    Delete the end walls, the brushes that would of blocked the player from getting into your hallway, using the backspace key.

    To make sure your rooms are to scale we need to add some entities for a size reference.

    Textures
    To use textures you will first need to load the texture set (group of textures) that you want to use.  You might note that there are already a few sparce textures in the texture window already (Picture Assistance).
    To load the Borg texture set simply go up to Textures » Borg and wait for it to stop loading the textures from the Borg set (Picture Assistance).
    You should see something similar to Figure 4.1 (below) in your texture window when it finishes.

    Figure 4.1

    If you see no textures or black and blue checkered boxes then you need to review Installing the GDK.

    What you just did was load all of the Borg textures that are in the BASEEF/PAK01.PK3/TEXTURES/Borg file into your selection box so that you can apply those textures (and more if you desire) on to the face(s) of brushes.

    Faces are single sides of brushes.

    To select a single side rather than the entire brush hold down Shift and Ctrl while you Left click on the face that you want to work with.

    Get that? SELECT A FACE by holding CTRL and SHIFT while LEFT CLICKING on a brush face.

    Applying textures to a brush: Select the brush then click the textures that you would like to cover the brush from the texture window (as seen in Figure 4.1 (above)). You can scroll up and down in the texture application window to select which texture you think would look good on your brush.

    Pretending that your not satisfied with the Borg texture set and that you want something that flashes and glares a little techno looking texture you might select the Voyager texture set. Do so now by clicking Textures » Voyager.

    You have just loaded the BASEEF/PAK01.PK3/TEXTURES/VOYAGER textures.

    Notice how the Voyager texture set adds in with the Borg texture set. Now you can select both Borg and Voyager textures.
    When you save your map and exit EFRadiant and then restart EFRadiant and reload your map that only the textures that you have used or that always load on start up are present in the texture window.

    If you use too many textures in your map (around 40 or 50) then you won't be able to compile your map because the engine can't handle that many images.

    Earlier I mentioned shaders but I didn't give quite a detailed explanation as I am going to do here.
    Shaders are .shaders files that contain information as to what a specific texture does while in game.  You can make a texture that is slippery, transparent, painful to player, one that makes images go back and forth or even one that does a combonation and more.

    Making your own custom shaders is a more difficult task and even though Raven supplied ShaderEd.exe, a shader editing tool, your better off using good ol' notepad.exe by temporarily renaming the .shaders file into a .txt file and opening it that way.  Although I could write a lengthy tutorial on Shaders the best way for you to learn what a shader can do is for you to see first hand by exploring it your self and cracking open as many .shader files as you come accross.

    Shaders are textures surrounded by a white box in the EFRadient texture window, but are not as easily detectable in the game best seen in Figure 4.1 (above).  Shaders may be as simple as playing a "sound/metal_4.wav" sound when the player walks on it, or it might be as complex as a fog allowing the player to float through it, but hurts the player every few seconds as it ripples like an ocean's waves.

    Every sky is done with a shader.  The parallax sky, or the textures that don't change no matter what position you look at them from, like the space borg_sky brushes, are the easiest shaders, that the player should see, to work with but   don't go overboard with them because each different sky loads six different images into your graphics card and or RAM.  Two different skys on one level loads 12 different images.

    If you do make a shader of your own don't forget to add your shader's name in the BASEEF/SCRITPS/SHADERLIST.TXT.

    If you do venture out into making shaders I suggest you do so by hand rather than fall into the ShaderEd.exe trap; open the .shader files with
    notepad and study the old fashion way.

    If you don't want to look at any shaders then you can turn off (uncheck) Show Shaders option.
    There is also the ability to type into the text box and search for a specific texture that turns you on.
    For instance you can type in 'bigborg2' and any texture currently loaded without 'bigborg2' in its name
    will be filtered out. If you have show shaders unchecked but type in the name of a shader you will still
    get that shader texture.  Both the Show Shaders check box and the texture search box are shown
    in Figure 4.2 (below).

    Figure 4.2
    (Picture Assistance)

    Ever seen a window or a ledge in a Quake game that you should of been able to jump onto? Ever get the feeling that you were being blocked by an invisable wall? Well, You were, by something known as a clip brush. A clip brush is a brush with the common/clip texture covering it.  Although you can see it in the editor it is invisable in gameplay. You might not know it but that texture is also a shader because it goes on a normal brush and yet gives that brush a function. Clip brushes block the players movement into any area, and it also blocks the Non-Player Characters movements as well.

    Connecting Rooms
    Select your original room.  An easy way to do this is to draw a large brush over your entire room (don't worry about its depth or any other of its specifics).  Next go up to Selection » Select » Select Complete Tall.  This should select everything that was inside of the 2D view of your selected brush.  You might press escape to deselect the brushes and see how the other options work:

    Selection » Select » Select Complete Tall  -  Which selects everything inside your selected brush's 2D view.
    Selection » Select » Select Touching         -  Which selects everything touching your selected brush in 3D.
    Selection » Select » Select Partial Tall        - Which selects everything inside your selected brush's 3D view while deleting itself.
    Selection » Select » Select Inside               -  Which selects everything inside your selected brush's 2D view while deleting itself.

    Now use the spacebar, as learned earlier, to copy the selected brushes. Next you should position the current selection away from your original structure as we are going to put a simple hallway between the two using some elite options.

    Instead of drawing several brushes to make a hallway between the two we are going to make one (1) brush.  Instead of individually cutting the walls of these rooms we are going to use something known as CSG_Subtract to do it for us. First thing is first, create this brush so that it enters, through the walls, into the center (or close to the center) of the two rooms without being inside the floor or ceiling of your room, otherwise it will cut them to.

    Select the hallway brush and go up to Selection » CSG » CSG_Subtract. This should of cut everything inside of the hallway’s brush.  If it doesn't do anything then try switching the texture of the hallway brush to something that isn't a shader.  To do this you might uncheck the Show Shader option and select from the left-over options (also make sure that no search text is in the texture search box as it will show shaders even if show shaders isn't checked).

    Circular Brushes
    There are some options that are up in the menu section of the application. Create a square brush and make it nice and perfect. With that brush selected go up to brush and select the first option ‘3 sided’. This should of changed your block into a triangle. Now select brush and go down to 4 sided and so on.

    Those all go up to 9, now click on arbitrary sided and enter the number 16, this will make a circle that works. Unlike a curved surface it is not perfect but it is solid and you can let the player view it from any angle safely. This is a great option and very useful for those of you who want to make a circular hole in a wall.

    Don’t enter more than about 20 into the arbitary sided device or your efradiant WILL crash. Sometimes when I am board I like to crash it so as an experiment enter 99 and watch EFRadiant nose dive. You might want to save first.

    Utilizing Different Brush Types
    Structural or Detail. There are two different types of brushes and while the player will
    never be able to tell which brushes are which; Both block his sight and movement.
    Only Developers and Beta Testers need to discern between the two.

    All brushes are naturally Structural, each one blocks the player and engine from seeing through it.
    Unless the player moves to see what is on the other side the computer will not render, or think about,
    the unseen portions that the structure is hiding. A wall would be structural because it stops the player
    from seeing what is on its other side, thus the computer doesn't need to render what is on the
    opposing side at the moment!

    Small objects don't need to be structural, but should be Detail, because no matter where the player is
    in the room the user will always be able to see what is on the other side of it.  Certain items like chairs,
    desks, tables, computers, and pipes should be Detail.  Rooms are Structural but what is in those rooms
    should be detail.

    Practice using Structural and Detail brushes and you'll find your maps running very smooth.  Use both
    types of brushes correctly because if you use too much detail the computer will not stop seeing through
    brushes and may render way too much.  Let the computer think about what is in the immediate
    area--not the entire level all at once.

    This is how a level looks without the Developer making anything a Detail; leaving everything a natural Structural type brush. Note how each brush cuts the one it's next to. It does this to better define what the engine will render, but it actually has to render more. Figure 7.17
    Without detail brushes!
    Each of the gray brushes, that aren't in contact with the outside of the level, are made Detail type brushes. Look how the compiler DOES NOT cut the adjacent walls into little bits. Figure 7.17
    With detail properly used!

    To make a brush Detail: select the brush(es) that you want to be detail and click Selection » Make Detail
    To make a brush Structural: select the brush(es) that you want to be detail and click Selection » Make Structure

    Curves and meshes are already details (you can't make them otherwise).  Since they are Details they
    don't block light from escaping your level and will generate a leak error if placed in contact with the void.

    The void is the infinite (nearly) gray, or more accurately: black, space around your level.
    Imagining that you did modify one of your walls that is touching the void into a detail it would
    act as if that wall wasn't there, other than the fact that the player cannot walk nor see through,
    that wall would simply become a leak point.  Light from the level would "leak" right out forcing
    the compiler to render everything outside your level.

    Curves
    Making Curves, is easy to do:
    Make a brush and using curves » cylinder. Very similarly the
    best way to find out what does what in the curves section is
    to try each and every one of the options so you know what
    does what first hand.

    Due to conflicts in operating systems, computer's memory, and all-around acts
    of nature you should save before using curves.  Find out now what your computer
    seems to handle best and make note.

    Curves, being Detail brushes, will cause a leak error if you don't back the curves with structured walls,
    you would be better off using a common/caulk texture behind the curve or mesh. Here is a very good
    tutorial by EutecTic and Ricebug which I couldn't possibly do better than.

    Curves are generally pretty unstable and should not be clipped nor turned into an entity.

    The Caulk texture makes it so that the engine doesn't think about that face of a brush at all.
    Don't caulk faces where the player will see them because they give the Hall Of Mirrors affect.

    Entities
    An Entity is something that performs a specific task other than stay in a static location with a constant value.
    Entities can have structure but most of the time they do not unless they are elevators, doors, or are breakable things.
    Entities can be something that the player picks up, uses, and or just looks at: lights, ammo, weapons, other characters, sounds...

    Right-Clicking in the main grid view will bring up a menu that shows quite a few catagories. Each catagory leads way to some detailed entities. However some entities are right out in front such as the Light entity. When you position your mouse in the middle of the first room and Right-Click you will get something similar to that of Figure 7.1 (below).

    Figure 7.1

    You will end up with something in the grid view like Figure 7.2 (below).

    Figure 7.2

    If the entity is in the ceiling, as they tend to do, you will need to use the keypad's + and - signs to raise or lower the entity until it is near the center of the room. Put it near the center of the room as shown in Figure 7.3 (below). If you leave it outside the room or close to walls, as I will explain later, the entity does little good.

    Note:

    You can connect entites quickly by clicking on the source (base) entity followed by the target entity.
    Then hold ctrl + k until you see a line drawn between the two objects, whereas it even illistrates
    the direction.

    While lights cannot be connected to other lights--they can be connected, individually to info_notnull
    entities to create directional spotlights.

    Figure 7.3

    Now let's make the light entity a different color. First make sure your light entity is selected and then press K
    and you will get a color options box (Picture Assistance).

    Note:
    Much like Lights are created from the Entity selection menu so are Non Player Characters (NPC's).  However,
    that will not immidiately make them friendly or hostile.  That involves scripting.  Scripting is easy but time
    consuming.  For a great tutorial on scripting try here.

    Now that you have set the color you will want to set the radius of the light and some other options, right? Right!
    So, make sure that the Light is selected and press N to bring up the entities properties as shown in Figure 7.4 (below).

    Figure 7.4

    Naming the boxes and in the Entity property window from the top to the bottom for future reference:

    Entity List Box         - Which basically shows you the entity your looking at. Currently selected: 'Light'.
    Entity Info Box         - Which tells you some possible commands that you can type in the Key and Value boxes.
    Entity Checkboxes   - Which give you some specific options with that specific entity.
    Entity Settings Box   - Which currently holds the key classname of which has the value light.
    Entity Key Box        - Which lets you place an option into the Entity Settings Box.
    Entity Value Box      - Which lets you attach a value to the entity Key that you just added to the Entity Settings Box.
    Entity Angles            - Which lets you set the angle that the entity will be facing, including Up and Dn (down).
    Del Key/Pair button  - Select something in the Entity Settings Box and then hit this button to delete it (returning it to its default value).
            (Note: Do Not Delete the Classname Key).

    Sound... button         - If this entity were capable of playing a sound, which a light is NOT, then you could easily attach a sound from here.
    Model... button         - If this entity were capable of using a model, which a light is NOT, then you could easily attach a mdl file from here.


    For now were are going to give the Light a radius of 64. We do this by filling in the Key text box with the value Radius
    and the Value text box with the number 64 as shown in Figure 7.5 (below). You should also add the other values into your Light entity (for practice).
    Normally you only put the values that you specifically wish to change from the entities default properties.

    But since this is my world and this is just a tutorial you can use this to learn the defaults.

    You should also note that the Light value expressed in Figure 7.5 is 350, whereas 300 is the default.

    Figure 7.5

    The radius, being the distance your light entity will put out light, is to be 64 units.
    So in the Key we type radius, then type in the value of 64 in the value box. Press Enter.
    Every special value like that should be a square number because it helps the engine break down the number into smaller parts. Which means that it thinks about it faster. A radius of 64 is default so technically you don't need to put this as it will be 64 already. It is a good idea to put it in anyway just for the ability to readily see what the value is while your editing.

    When you see the properties in the Entity Settings Box they are final to the entity unless you change them.

    To show you more of what lights are for I have constructed this little
    test room where each yellow grid unit is 64 units by 64 units in size.

    Figure 7.7

    Note:

    The following light testing images use the region (holodeck) texture to show a relative grid size.
    That same texture, as you should see in Figure 7.7 has dark grey shading around the yellow lines
    which may make it seem as though the light is subdivided into four different parts, but it is not .

    Here is the same room from the 2D view.  This picture was taken with the 8 grid unit guide on (the 4th setting);
    meaning that each little grid unit consists of 8 units.  The larger grid then contains 8 grids units of 8 (making each
    light gray box 64 units; 128 square units). Not Important--so don't worry if you have no idea what the hell I'm saying.

    Note:

    Press Q to turn on a grid assistance that will show you the exact measure of your currently selected brush(es).
    Hold Shift + Q to turn off this option.  It is recommended you leave it on.

    It is important that you know that 64 units is one light gray box because our light has a radius of 64 units.

    Figure 7.8

    Observe how each different setting (in figure 7.9 and 7.10) has little impact if the light entity is in the wall!

    Figure 7.9

    Figure 7.10

    Still more fun can be had when implimenting color. You should note that the wall
    that the lights are directly up against isn't as bright as it should be because the lights are still
    partially in the wall--this can be corrected by simply dragging the light a few units
    away from the structure.
    Figure 7.11
     Each color 'addatively' merges with it's
    neighboring light entity in Figure 7.12. This is a funky effect where when in wall they
    are on only gets about 25% of the light it's supposed to; while the surroundings
    seem to get the correct amount.

    Figure 7.12


    For another test let's pull the light entity 64 units away
    from the wall as shown in figure 7.13 (below).
    Figure 7.13

    Note:
    All of the following images in this section are based on
    the 2D light design as seen in Figure 7.13 (above). 

    Keeping the radius as 64 look how things like Linear and Light affect how the Light looks.
    Linear: 0
    Light : 300
    Radius: 64
    Figure 7.15

    Figure 7.16
    Linear: 0
    Light : 600
    Radius: 64

    Linear: 1
    Light : 300
    Radius: 64
    Figure 7.17

    Figure 7.18
    Linear: 1
    Light : 600
    Radius: 64

    Linear: 0
    Light : 300
    Radius: 64
    Figure 7.19

    Figure 7.20

    Linear: 1
    Light : 300
    Radius: 64

    Player Start
    Now we are going to make an Info_Player_Start entity so that you have an idea as to whether your map is big enough for the player to fit properly inside (Picture Assistance).

    You would rather the ceiling be too hight that too low because if the ceiling is too low then the player wont be able to move anyway.

    First Right-Click in the main grid view so that you get an entity list. Next go to Info » Info_Player_Start.
    Now set the options so that:

    The player spawns without the blue transporter beam effect (Silentspawn),
    The player keeps his previous weapons and ammo (Keep_Prev),
    The player drops to the floor if he is off of it (DroopToFloor).

    You should now have something similar to that shown in Figure 7.6 (below) (Picture Assistance).

    Figure 7.6


    Even though each entity has its own settings and check boxes you can learn
    more about how each entity acts by reading the description in the entity's property page.

    I don't advise you select more than one entity and use the entity's property page unless
    the entities are of the same class.  For example it is perfectly fine to select 6 different lights
    with various different colors and change the light value.  However, you should not select
    some lights, weapons, and ammo and tell them to drop to ground.

    Func_Doors
    As you might have guessed this entity is your everyday sliding door. To build the best door is simple but
    probably not what you would expect.

    Draw a brush to meet your door's desired dimensions.
    You can also make multiple brushes one door entity.

    Make the brush that you just created into a door entity by selecting your brush and right clicking to bring up the
    entity selection menu.  Select the FUNC » FUNC_DOOR option. You should notice some underlying text labeling it
    as a FUNC_DOOR in the 2D view.

    Make sure the door is selected and press N to bring up its properties.

    At the bottom of the entity properties window you should see eight (8) buttons featuring angles. 0Click the angle that you want your door to open to.

    In the KEY box type LIP. In the VALUE box type 8 so that the LIP of your door, or the distance that your door will go up is the length of the door minus eight units.

    We need to have some LIP to our FUNC_DOOR so that the door doesn't completely slide into another brush and make for questionable physics of our maps. Of course just re-modulate your shields and you'll be fine.

    Elevators/Lifts
    There is a way to use a FUNC_DOOR as a lift.  See the above section on FUNC_DOOR for details on how they work.
    Once you have constructed your FUNC_DOOR you will need to enter an angle of 'up' or 'down'. Enter a lip value (negative value if need be) that equals the distance (in units) you want your elevator to move to.

    If your elevator is 16 units high and the position you are moving it to is 64 units upward you would subtract the elevators height from 64 so that the top of the elevator will just meet where the upper level's floor   

    Create the brush(es) are going to have as the lift with an elevator like texture.
    Make the elevator brush(es) a FUNC»Platform. 

    Make two TRIGGER»MULTIPLE brushes with the texture of COMMON/TRIGGER as the complete and only texture on them.

    Put a PATH_CORNER entity where you want the elevator to lower to and another PATH_CORNER where you want it to rise to.
    Press Esc to deselect anything you might already have selected an

    Select the top PATH_CORNER then select the bottom PATH_CORNER entity and hold down Ctrl and the K key until you see a connection line drawn between them.

    Now, select the bottom path_corner entity and then select the top PATH_CORNER entity and hold down the Ctrl and the K key.
    Select either one of those PATH_CORNER entities and press N to bring up thier properties.

    Key = wait
    Value = 4500

    This means that the elevator will wait 4.5 seconds before returning to its start place.

    Select the func_platform brush(es) select the path_corner that is farthest away from it and hold down Ctrl and the K key until a line is drawn between them.

    Make sure that your elevator is directly under or over the PATH_CORNER entity that it is going to other wise it will slant (unless that is what you want it to do)

    Pendulum
    Create a little block with the origin texture on it and then create a couple of brushes of any shape that you would like to have swing back and forth. Select all of those brushes, including the origin brush, and convert them into a func_pendulum.

    Press escape to deselect them, Now reaquire thier selection by holding the shift key while clicking on either one of them, If they are now all selected you can press N and play with some settings.

    The important thing is that you select your origin brush and the brush(es) that you want to move together. It should move fluidically. 

    Force Fields
    Force Fields are just brushes with a specific texture added to them.

    Make the force field brush (any shape you want).

    Now click on 'textures' in the EFRadiant menu header followed by clicking 'borg' to load the borg textures.

    The force field textures in the borg catagory are as follows: static, static2, static2_nonsolid, static_yellow

    Select your brush and then click on one of the above mentioned textures. Then your done, and when you compile your map you will see a force field. Make it a func_wall to turn it off and on, be sure to check the details on this.

    Teleporters
    There are two main types of teleporters:
    1) Seemless teleporters -- Player doesn't notice they are being moved
    2) The blue startrek transporter beam-in effect1)
    To make a player move without a blue fog around them you must make a script file with behaveed
    you can see the included map files.

    Basically you input the code affect "munro" and set origin a ref_tag's name
    Next you place a trigger_once entity and a run script in you map where you want the player to transport from.
    Connect the two by clicking on the tirgger_once and then the spawnscript and holding down the ctrl and K key,
    then tell the runscript to use your script.

    2) To make a player move with the fancy startrek transportation effect create a trigger_transport and point it to an
    INFO_NOTNULL by selecting the FUNC_TRANSPORT and INFO_NOTNULL and holding Ctrl and K until they are connected.
    Here is the SOURCE.

    Level Transitions
    Put a func_trigger once where you want the player to get sent to another level.

    Then you connect it to a TARGET_LEVELCHANGE.
    Press N while the entity is selected and follow the directions in the information box as to what key and value you should use. There is also a complete Source Map availible.

    Text in the game
    In the game you can actually see what is being said through text (captions) on the lower part of the screen.

    In fact the ending of the level message is placed in a file called extra.pre that sits in a directory
    named after your map. If you map's name is mymap.bsp then the name of the file would be mymap.pre
    in the real_scripts/mymap directory.  First make a text file and name it extra.txt.

    Open the text file and the desired sound as shown below:
    sound/mysound.mp3 "die janeway, die die die"

    Rename the text file to a pre file (extra.pre) and when the sound is used it will display the text "die janeway, die die die".
    It is also said that if you don't want any text for a sound you type the following instead:

    sound/mysound.mp3 NOTEXT

    If your captions don't show up in the game make sure that your caption setting is on.

    Compiling
    You MUST save the map your working on in your BASEEF/MAPS directory else you cannot compile.

    Compiling with XP
    Please follow these directions very closely and if you don't know what you are doing don't do it without making sure of what you are doing. Basically, if you can make a shortcut and cut it into another directory then you should be fine but...

    If you have recently had the 'fun' of getting Microsoft Window's XP then you have probably noticed that you cannot compile using the standard point and click with EFRadiant. Why? Because XP doesn't support the way EFRadiant launches DOS commands (basically).

    Anyway, you can compile this way regaurdless of what operating system you have but XP users must compile this way.

    1) In your TOOLS directory make a new file, a text file, and open it in notepad.

    2) Type the following changing the directory structure to meet your own
    (Note: each line has different color):

    Document: New Text File.txt
    q3map -qdir startrek f:\games\startrek\baseef\maps\%1
    q3map -vis -qdir startrek f:\games\startrek\baseeef\maps\%1
    q3map -light -qdir startrek f:\games\startrek\baseef\maps\%1

    Note:
    If your game folder is not STARTREK then replace
    both sets of startrek, in each line of the text, to the
    your actual folder's name.

    3) Save your new file as compile.bat (make sure that you don't have a txt extention on the end of your bat file).

    4) For Microsoft Windows 98 users skip to step 5; XP users go into your windows/system32 directory and make a shortcut of cmd.exe, then put that shortcut you have just made into your tools directory. Open the properties of the shortcut and where it says start in: put the value F:\GAMES\STARTREK\TOOLS or whatever your actual tools directory is. Then click apply and ok.

    5) Double-click on the shortcut and type compile then your map name. So if your map that is in the maps directory is called mymap.map you would type compile mymap.

    Some people, on certian operating systems have reported no activity at this point yet it should be working even though you can't see it. I, however, see it exactly as I did before with Microsoft Windows 98.

    Your map should be compiling... when it finishes you are done and you should be able to take it from there as you would have otherwise.  I hope this has helped you. I would like to give a special thanks to Absynthe and Grand Nagus for the specific how to's of the bat's; and my dad, Sam, for the help with the DOS commands.

    Compiling with Windows 98
    Once you have saved your map file and have been returned to the main EFRadiant screen click on "BSP" (directly across from File)and go down to the "BSP_FULL" or "BSP -Light -Extra" depending on the version of your editor.
    BSP » BSP_Full Vis. See Figure 10.1 (below).

    Figure 10.1

    This should make a DOS command window appear with a lot of information in it, in fact it will look something like Figure 10.2 (below).

    Figure 10.2

    For now disregard that information and wait four or five minutes. Note all of the processes and the time involved as both will grow exponentially relative to the size of your map. What you are doing now is making the .map file into a .bsp, which a map file cannot be understood by the game whereas a bsp file can.

    If you try to close it while it is still working a window will pop-up, you should respond by clicking "no" because you don't want to close the program before it has completed your map. (Unless you don't want to compile your map, that is).

    If the time has become unbearable and you want it to stop compiling click "yes" to close the program. If you close the compiling program pre-maturely it will not do anything (good or bad) to your actual map file.

    Once that DOS window reads "-finished ", as shown in Figure 10.3 (below), up in the top left corner you can close the window. Figure 10.3

    Run the game. In this case,STVOY.EXE, located in the game directory and once at the main menu press the console button. (In this case that would be the tilde key " ~ " which is next to the " 1 " key). Once the console appears you will be able to type map yourmapname ". You don't need to type map yourmapname.bsp as it will only load .bsp files anyway.

    If you didn't notice that your map took a while to load then multiply that by 15 and that is a standard project. However what you have just done in the way of compiling is known as a FULL compile. The FULL compile compiles your map as though you were doing your final rendering of it. However, if you just want to check out how fast one of your Func_rotate entities spins you would do one of the lowlyer compiles to save your self some time.

    If you have forgotten your map name at the Elite Force prompt type dir map and look for its first name (that of not being the .bsp). Once you type your level's file name as shown above you should be greeted with a brief load screen followed by the ravaging success of your spectacular map!
    Quality may vary slightly than 'ravaging spectacular map'.

    ERRORS
    ERROR   : AAS_MAX_PLANES
    GAMEPLAY: MULTIPLAYER
    COMMENT : Large brushes when compiling the BPS for the bot support (the AAS file.)
    FIX     : Once large brush is found break it down with the clipper tool.

    ERROR   : MAX_SURFACE_VERTS
    GAMEPLAY: ANY
    COMMENT : You have too much stuff in your map, in this instance: verticles.
    FIX     : Delete some of your maps less needed portions.

    ERROR   : MAX_MAP_LIGHTGRID
    GAMEPLAY: ANY
    COMMENT : You have too many lights in your map.
    FIX     : Delete some of your maps less needed light entities.

    ERROR   : MAX_PATCH_PLANES
    GAMEPLAY: ANY
    COMMENT : One of your brushes is getting cut by the compile way too much.
    FIX     : Reposition the brush, Cut the brush yourself, Or Delete it.

    ERROR   : MAX_MAP_BRUSHSIDES
    GAMEPLAY: ANY
    COMMENT : One of your brushes is getting cut by the compile way too much.
    FIX     : Reposition the brush, Cut the brush yourself, Or Delete it.

    ERROR   : WindingFromDrawSurf failed: MAX_POINTS_ON_WINDING
    GAMEPLAY: ANY
    COMMENT : One of your brushes has oto many points or you have a brush somewhere with more than 64 corner points.
    FIX     : Sever with the clipper tool or Delete it.

    For most of you, you will go through the rest of your life never seeing this dreaded error--unless you make a map with a long brush or decompile someone else's map.  This nastly little error is one of the worst because it, to my understanding can also be a small brush that is of the EVIL POLYGON type, but that the evil poly plugin wont always detect it.

    This error managed to manifest itself on me and I didn't even make the damn brush!! Working on the re-make of Colony 7's first chapter I discovered this error on the first level where the transit tube takes you accross the planets surface to the transporting facility.  Of course when I compiled this and found out that it was ONE BRUSHES fault I began tearing the map apart looking for any brushes I might have added that caused this error. Yes, the error must be fixed because the compiler won't even finish compiling with the bad ass brush on the loose.

    Ug, Anyway, if your vulcan logic hasn't already told you.. I did manage to find this brush and used the clip tool combined with the shift and enter option (talked about in tutorial) to cut the brush in half with-out needing to make a totally new brush or take any drastic measures.

    If you should run accross this pain then... run, run like hell (to a recent back-up).

    ERROR   : LoadTGA: Only type 2 (RGB), 3 (gray), and 10 (RGB) TGA images supported
    GAMEPLAY: SINGLE
    COMMENT : Your using a script on a JPG or using a bad format of a picture's shader.
    FIX     : Remove the script, or change the picture file.

    ERROR   : Bad PointToPolygonFormFactor
    GAMEPLAY: ANY
    COMMENT : You have a curve or mesh to close to sky.
    FIX     : Move or Delete offending patch or skybox.

    ERROR   : SetQdirFromPath: no 'startrek' in C:/stvef/baseef/maps/mymap.map
    GAMEPLAY: ANY
    COMMENT : Your EFRadiant is improperly installed;
    FIX     : Add startrek to your directory list (I.E. C:\startrekstvef\baseef...)

    ERROR   : FloatPlane:bad normal
    GAMEPLAY: ANY
    COMMENT : Usually when you move a brush and you drag it to its disappearance.
    FIX     : Find its new home and Delete it.

    ERROR   : SV_SetBrushModel: NULL
    GAMEPLAY: ANY
    COMMENT : You have an texture specific brush (origin) without any siblings.
    FIX     : Recreate the entity with the needed additions.

    ERROR   : MatchToken( "(" ) failed at line:
    GAMEPLAY: ANY
    COMMENT : You have an non-ending shader file error.
    FIX     : Look at your shader and make sure you have a } ending the function.

    Guide to Beta Testing:
    Call the console by pressing ` being the ~ button next to 1 on the IBM/PS2 keyboard.  You will now need
    to enable cheats by typing sv_cheats 1.

    Don't fall back on just what the user will see; Know every aspect of the map
    in order to learn what effects will be had on another machine and how it will play.
    Some helpful commands that I have pilaged the web for are as follows and
    all have been tested:

  • r_showtris
  • r_fps
  • r_speeds
  • r_fullbright
  • r_drawentities
  • r_drawworld

    Basically, if you were to just enter these they wouldn't do anything. They are boolean commands; they only accept 1 or 0 to allow you to toggle them on and off. You need to use the opposite number than the one shown to shut off the effect; The commands below turn on the effects so use the opposite number to turn them off. The commands are not case sensitive. No map should require that the user enter these codes to play it.

    R_showtris 1   will place white lines around all of the brushes that the computer is rendering. This is probably the most important command you will ever use while testing your map. This command shows where your brushes are cut by the compiler. This allows you to see where you need to make changes to lessen the number of brushes that are sliced.

    R_fps 1   will show you how many frames per second your machine is rendering. The higher the better as your computer is having little trouble rendering the scene thus allowing it to deliver the best picture to the user.

    R_speeds 1   to have the console tell you how much is being rendered. For this smaller numbers are best. You shouldn't have over 10000 for any one of the sets.

    R_fullbright 1   is a special command that will, upon restarting ignore lights and simply show the entire level in light. This is useful as sometimes we forget to light rooms and don't want to compile the map all over. After you enter this you can use the vid_restart command to immediately show you your level in full bright.

    R_drawentities 0   will shut off the entities. This is useful because sometimes you only want to see structures and detail brushes (see October 19, 2001) will block your sight.

    R_draworld 0   will shut off the world brushes. This is very hard to navigate through but is pretty useless but if your playing around and shutting off entities and such its kind of interesting.

    Interest Tips
    1. Common Sense: Don't use textures that are unfitting for the mood: A dark and scary cemetary shouldn't have a bright and splended 32-bit 640x480 bitmap of someone you love plastered to a 64 unit tombstone. You don't normally see picture perfect photographs in any quality posted on headstones: it just doesn't happen in real life - and since your trying to emulate the real world, shouldn't happen in the game.

    2.Don't make genre design flaws: When on a Borg cube you don't want to have arches or cuniforms with ice cream trucks and hard core pornography. Why? Because the premis of the Borg is to be perfect and since a 5 sided circle is not perfect and would be unfitting.

    3.To make the game interesting in the more generic of hallways or large rooms try taking away some of the uniform sections.  For instance, If you have a long hallway with 15 lights make one of them busted so that there is a dark spot.  This is one of the best ways but shouldn't be overused as even being out of uniformity can become a standard.

    4. Lighting is very important, that is why there is a whole entity section dedicated to lights. It controls what the player will see and how much time they will spend looking at it. It also gives an atmosphere to the surroundings through the use of color and position. If you have something the player is going to need to get then tell them with a little addition of light. No corner should be pitch black under normal stances. Its not really all that fun to not be able to see where the hell you are going in a map.

    5. Don't make your home/yard/shanty. This is an editing rule that applys to Unreal and Quake specifically as the First Person Shooter genre doesn't conform to the average trailor. You should make an interesting design, nobody wants to visit your pathetic hole in the ground in the real world nor in a 3D game. There are a thousand maps out there of peoples' houses and they all suck, not because their creaters can't design but because no real house as of the composing of this document has been designed for a deathmatch.  If your home is designed for deathmatch:

    6. If you insist on making your house then make damn sure you follow the good mapping rules and that you don't bathe the fu¢kë® in multi acid induced colors. That really annoys people.  The only good house in the entire history of gaming that I can see is MANSION.MAP for Duke Nukem 3D.

    7. Use as few textures as you can without detracting from the game experience as alot of textures (40+) can cause the game to go crazy.  It also lowers the amount the game has to load on startup of your map.

    Editor Tips
    Make use of the grid assistance option (press Q while mouse is in grid window) this will enable you to see exactly what measure the brush you currently have selected is!

    As in a level tip by Terry DeLaney it is mentioned that you should draw/sketch out your map just so that you are more familiar with what you are going to do. He also mentions that using the 64 grid snap for the larger rooms' walls is a good idea for those good level speeds and that build one room at a time and then patch up the room's exit and compile to scan for leaks would be the easiest thing to do.

    Levels should have a general theme to them: like a Borg level shouldn't have an ice-cream sign unless your level is a mockery of the genre.  Another reason you shouldn't put an ice cream sign on a borg level is because that has already been done (see Tour Of Duty). You can assume not putting a turbo lift directly to a single bedroom, turbo lifts should take you to a hallway and then allow the player to navagate to your specific room. If you don't want them to navagate to the room then you are in luck, Startrek is full of holes that will allow you to 'remodulate the shields' and transport the player into that specific room or whatever.

    For those of you who are converting from the Quake II engine or the Halflife engine, like me, you may expect the compiler to texture cut where ever the texture ends, However, that will not happen and you are free to place the texture where ever you want without worry of texture cuts.  Also to avoid the brush cuts make brushes Details.

  • When inputing values of entities, such as lights,
    (and when it wouldn't look bad, round to the value
    to the nearest square number so that it is  easier for
    the engine to compute.

    Square Numbers
    01 04 09 16 25 36 49 64
    81 100 121 144 169 196 225 256
    289 324 361 400 441 484 529 576
    625 676 729 784 841 900 961 1024
    1089 1156 1225 1296 1369 1444 1521 1600
    1681 1764 1849 1936 2025 2116 2209 2304
    2401 2500 2601 2704 2809 2916 3025 3136
    3249 3364 3481 3600 3721 3844 3969 4096
    4225 4356 4489 4624 4761 4900 5041 5184
    5329 5476 5625 5776 5929 6084 6241 6400
    6400 6561 6724 6889 7056 7225 7396 7569
    7744 7921 8100 8281 8464 8649 8836 9025
    9216 9409 9604 9801 100²
    You probably wont need to go higher than 1600
    in value while making your average levels.

    Links and Frequently Asked Questions
    1. Scripting Tutorialhttp://www.geocities.com/lord_dave122/gamestuff.html


    2
    . Online: Claudec's Tutorials for Quake III editing

    3. What is a waypoint?
    A waypoint is a location marker for NPC's walking. They use them to see where your level will allow them to go. Connect them together in a streight path and then give your NPC's some scripting and watch as your people walk around corners and other obsticles without needing to know the origin where to go.

    3. How do I determine where a player comes back into the game after they have died?
    The entire map starts over so their is no way to allow the player to start in a different location just because they died.
    You can make thier start position random using a relay with multiple starts but this might cause some confusion.

  • www.efmodcentral.com for all your Elite Force Downloading needs.

    PK3 Files

    What are PK3 files? They are zip files, yep that's right, compressed files that can be read by most compressors (IE Winzip)
    Not that winzip is the only decompressor out nor is it the best, it's just the one I have. However what ever decompressor you choose it must be able to recurse the directories.
    The game requires that you have a directory for you file types and one for you maps and ect... which are all pretty obvious that sounds go into the sounds folder and pictures go into textures.

    If you are making a map that you would like to distribute place your bsp file in a directory called maps and zip it up, rename it to a PK3 file and send it out (after you test it).

  • Put map files (bsp,aas) in the maps directory
    Put texture files (tga,jpg) in the textures directory
    Put sound files (mp3,wav) in the sounds directory
    Put scripts (ibi,pre) files in the real_scripts directory
    Put shaders (shaders,txt) in the shadersdirectory

    Put desired level loading screen (jpg,tga) in the levelshots directory (which must have same first name as your map mymap.jpg)
    Recommended picture size is 512 x 512.

    You may not need some of these directories, for instance:
    If you don't have any custom textures you wont need to create a Texture directory.

    You do not send the pak01.pk3 as that would be illegal, unpractical, redundant. Instead send your mypak.pk3 containing your files alone. People will already have the pak01.pk3 file.

    Multiplayer Support - AAS files
    Making a multiplayer map is difficult enough in some cases and if you don't know how to make an AAS file then you'll find it impossible. An AAS file tells the computer where a BOT can go and without it it is pretty much not a multiplayer map.

    Though the AAS file is needed to make a MULTIPLAYER level it belongs with the BSP file. In other words you will still need to include both the BSP and the AAS in the BASEEF/MAPS directory of your released PK3 file.

    To download the program that will extract and create BOT information download it from www.ion.com.au/~dans.

    Contacting the author:
    I have pretty much included everything their is to know about EFRadiant, anything else you want to know you can find out on the message boards.

    So, Please do not email questions to me. I am no longer supporting that particular facet of this tutorial as I have spent roughly two years answering alot of questions for Elite Force via my personal e-mail and I no longer wish to do so.

    If you have a comment email me at TickNSwisted@stny.rr.com.

    Legal:
    You are granted permission to distribute this tutorial (the package) by any means that you deem fit provided that it is unchanged from its original form and that it is not being sold for a profit. This is not an official guide but is the most informative one availible exclusivly for Elite Force.

    EFRadiant, Elite Force and all related materials are property of Raven and or Activision. Quake, Quake II, Quake III, Q3Radiant and all other related materials are property of ID Software, Inc..

    This document and included picture files are copyright 2001 by Eric S. Schafenberg (alias TickNSwisted) unless otherwise specified.
    This is the final version of this tutorial, which has been in publication and undergone 6 major revisions since its original release on August 19, 2000. You use this file at your own risk; I cannot be held liable for anything that might happen if you use this tutorial.

    Special thanks and recognition to QERadiant.com; for giving permission to use their tutorials being to the author of the Caulk tutorial for doing a splended job illistrating the caulking methods, and to everyone on the Raven Software Message boards for information and to the people who wrote me with honestly unanswered questions. -- Thank you!

    I hope you enjoyed this tutorial and found the fruits of my labor and passion informative. March 14, 2002