K3DS2MAP.k3d 
    brought to you by Voltron, Defender of the Universe

I wrote a great keyscript for 3DS4 which allows you to save from 3ds
to the MAP format including most the entities for quake
(doors,lifts,platforms,monsters,teleporters...)
the script is obscenely slow for what it is doing(F' basic, C is the chronic)

Basically what you do is name an object what it does.
If you want a door you name the object doorA or door(whatever)
Then you animate the motion of that object in the keyframer as usual

To build the world
 Create any convex shape with less than sixteen planes and name it anything
 but the names of the entities. If you set the library to the medieval.mli
 included you can assign whatever texture you want to the faces of the object,
 if you don't assign a texture it defaults to a brick texture. Right now it
 only has the textures for medieval.wad. In order for the textures to work
 correctly the first object in the scene has to be the object named "medieval"
 It is a yellow square made up of a bunch of triangles. You can use tbox.3ds
 and build off it and the texture names will remain correct. Then you can
 delete away all of tbox making sure not to delete the object "medieval".
 To make a quake level work you need at least one entity, a player start.

ENTITIES
 (to get the names of the entities you can look at the top lines
  of code of k3ds2map.k3d)
 (I suggest loading in Tbox.3ds and just copying the entities from it)
 (When you move around entities move them around as objects. Don't select
 vertices,or faces and move around. This will change the centroid information
 and the entity may end up somewhere unsuspected. When building a door or
 something you can move the vertices and faces around but once you are done
 reset the Xform on it)

Triggers
 objectname-subname-type or just objectname-subname
 (ex. butt-b3-s : means button,target=b3,source)
 (ex. door-b3-d : means button,targetname=b3,destination)
 based on that example if you push butt-b3-s then door-b3-d will open.
 not only buttons can trigger objects, doors can trigger other doors and etc.
 (ex. !CL-tlevel: means changlelevel to tlevel)

Monsters
 Copy one from Tbox or name your own object.
 Place and rotate it wherever you want in level(preferably inside the world).
 Then you can animate a path for it by creating keys for it in the keyframer,
 rotation angles don't matter for monsters on paths.
 Time doesn't matter so just create key after key, don't worry about speed.

Weapons and objects
 Copy any weapon or power-up from Tbox and rotate and place wherever
 just like monsters

Lights
 You can create lights by copying the flames and torch from Tbox and placing
 them wherever. They automatically cast light.
 Also you can use OMNI lights.
 The brightness you set the OMNI light at in 3ds will transfer to quake
 if you add (-p) to an OMNI light (ex. Light-p or Light-p12) then it will pulsate
 if you add (-f) to an OMNI light then it will flicker
 if you add a targetname and (-f) (ex. light-yo-f) then a light will be
 off until triggered then it will turn on
 if you add a targetname and (-n) (ex. light-yo-n) then a light will be
 on until triggered then turn off.
 light-yo-f = light,targetname yo,starts off until target yo is triggered
 If you have a light that can turn on and off the targetname cannot be
 "f" or "p". Also a light cannot be able to turn on and off and pulsate or
 flicker. Just one or the other.
 flames and torches aren't set up to pulsate,flicker,or turn on and off


Lifts
 First create a brush and name it lift. (ex. lift1 or lift-A-d)
 (Sorry so far I can only save single brushed entities)
 When you build the lift place it at it's up position.
 If you don't create keyframes for it then it will default to going down all
 but six inches and move at a default speed.
 If you do create one keyframe it will move down only how far you tell it to.
 Also you can change the speed of the lift by changing the time you create it.
 If you create a second key you set how long the lift delays before going
 down,just create another key don't move it.
 And if you create a third key it will stay up forever after activation

Doors
 First create a brush and name it door. (ex. door16 or door-k3-d)
 When you build the door place it in it's closed position.
 If you don't create keyframes for it then it will default to going up all
 but six inches and move at a default speed.
 You can make a door go straight up or down or you can make the door slide
 in the X-Z plane.
 If you do create one keyframe it will open how you animated it
 You set the speed of the door the same way you do a lift
 If you create a second key you set how long the door stays open
 And if you create a third key it will stay open forever after activation

SecretDoors
 First create a brush and name it sdoor. (ex. sdoor16 or sdoor-13-d)
 you can't set how far or fast a secret door moves but you can set which
 direction it moves.
 Just create one key frame for which direction you want it to move, the
 distance you slide the door is not used just the direction

Buttons
 First create a brush and name it butt. (ex. butt04 or butt-t4-s)
 When you build the button place it in it's off position.
 If you don't create keyframes for it then it will default to going down all
 but six inches and move at a default speed.
 You can make a button go straight up or down or you can make the button slide
 in the X-Z plane.
 If you do create one keyframe it will open how you animated it
 You set the speed of the button the same way you do a lift or door
 If you create a second key you set how long the button stays on
 And if you create a third key it will stay open forever after activation

Platforms or trains
 First create a brush and name it plat. (ex. plat6 or plat-yo3-d)
 When you build the platform place it in it's starting position
 Then animate however you want. You can slide a platform in all three axis
 at the same time, but you can't rotate it.
 The speed the platform moves at is determined by the amount of time between
 the original position and the first keyframe divide by the distance it moves,
 just like a lift,door, or button.

Transporters
 First create a brush and name it tp. (ex. tp-tel1-s)
 Then copy the arrow from Tbox and name it similarly (ex. tp-tel1-d)
 For a DeathMatch transporter name them dmtp. (ex. dmtp-t2-s and dmtp-t2-d)
 Unfortunately I don't know what the hell spawnflag a deathmatch teleporter
 needs so it doesn't work. You can add a spawnflag of 1792 to a normal
 teleporter and it will only work in deathmatch but it will remain visible
 in normal play.
 You can rotate the arrow for which direction you are facing when you come
 out of a transporter.

Changing Levels
 First create a brush and name it !CL. (ex. !CL-cheese)
 This would cause you to be transported to level cheese

Fireballs
 First create an object named fireball (ex. fireball01) or copy it from tbox.
 Create the fireball in its starting position, then add a keyframe for how
 high you want it to go up. Fireballs only go straight up. Time in the keyframer
 is not used so just create the key anywhere.

SpikeShooters (continuous always on)
 first create an object named spike (ex. spike01) or copy it from tbox
 Spikes can either shoot up or down or at any angle horizontally.
 The rate at which the spikes are shot is determined by the distance between
 keyframes. The distance between the spikes in the keyframer is approximately
 equal to the distance in quake if you use my spike. The closer you place the
 keyframe to the original the faster the spike shooter will shoot.

Things which don't work or I haven't put in

 Concave Brushes and multiple brush objects
  I got this sorta working but it is real damn slow and wierd stuff happens.
  I wish I knew anything about basic because it really sucks to make BSPer
  in basic

 Buttons which can be triggered by shooting them
 To fix this edit your map file and add "health" "1" (1 health point) to any
 button. You can give a button any amount of health you want, not just 1.

 Damage
   doors and buttons and platforms don't give you damage when they hit you
   To fix this edit your map file and add "dmg" "10" (knocks 10 health off)
   to any door or button or platform.

 EndBoss
   I cannot get that buttmunch cthon to work nor can I get that lightning
   which kills him to work

 Sounds
   F' sounds I didn't want to waste the time to put in ambient noises.
   Also my sound doesn't work ever since I got a network card "System Board Resource Device Conflict?"

 Deathmatch Teleport
   I don't know what the hell spawnflag it needs or something
   You can add a spawnflag of 1792 to a normal teleporter and it will
   only work in deathmatch but it will remain visible in normal play.

 Sigils or Runes
   Cannot get these to work probably because of they need a spawnflag

 Certain triggers
   like counters,secret awarder,monsterjump,...

 Door Keys
   Sure you can place silver and gold keys but I have no idea how to make
   a door require one

 Trapshooter
   A spike shooter which only turns on when you trigger it

 Textures
   textures work but only if you have the object "medieval" as the first
   object. And this only allows medieval textures to be saved

P.S. for those interested the Func_Wall is for creating objects
     which aren't bsp'ed into the world

     Thanks to whoever made the base.mli and medieval.mli. My brother
     gave them to me and I don't who made them.

     Also you should look at my brother Billy's editor GEO

Jason Zelsnack

If your computer blows a rod or spins a prop then blame autodesk not me.

If you have any suggestions or comments, or make a map with it. Send it to
me. I would like to see it.
You can get it to me via
billyz@anet-dfw.com
and my brother will get it to me.

Some time in the future I will finish up my amazing BSPer so concave brushes
and multiple brush objects will save correctly.

Also I'm writing a MAP to ASC converter so you can entities and stuff to
levels made in other editors like GEO.



