I enjoyed mapping for KF2 and creating places for people to play and love the way it enticed many great mappers to make great maps for the game but not only that but new mappers learning their way through the SDK meaning a long future for the game hopefully like KF1.
Here are a few hints and tips for using KF2 SDK please feel free to add any further tips to keep things in one place and neat. You may know better ways or faster ways to do some of the things listed but these have personally worked for me!
FIRSTLY SAVE OFTEN infact more than often as the editor has a habit to crash alot
How do you add custom textures to things?
You can find many custom textures around the net and these can be implemented very easily. First find your texture and save to your PC.
Next step I use GIMP which is like photoshop. Open the texture and rescale to the power of 2 ie, 128x128, 256x256, 512x512 and so on.
Save to your desktop as a PNG file. Next open up content browser in the KF2SDK and click import. Make sure to name the import destination the same as your map Name. Ie testmap.
Once imported you will see it listed, it will say texture2d in the box, this is good but will not work on meshes. You could create a new material but it would be a lot of work building this to have say reflections etc..
In the content browser find the "Packages" folder and right click > Fully load. Once completed search for metal and find the Metal MaterialInstanceConstant. double click this and a box will appear with options etc.. under parent there will be a material name select and right click and copy.
Back in your map folder right click in the box your texture is in and select new materialinstanceconstant, make sure the package name is your maps name and fill out the other names. Open this MIC and paste the parent material name from the other one into the parent of the new one.
You will see in the preview box a ball with a texture. Scroll down to parameters in the box and find Texture check box, tick this and highlight your new texture in the content brower. click the green arrow at the end of the texture line and it will add your new texture. Congrats you can now assign this MIC to static meshes in the map.
Custom textures are not showing in my map online or to other people!
The way I found to fix this is, when your ready to upload your map click the build all like normal, once finished save and then look to the right of the build all button, there is a button that says publish, click this and a box will appear, IF this box says something like cannot compile material blah blah in yellow, let it finish close the box and try again, you have to keep running this until you get no yellow errors for materials or textures.
Save and then upload as normal and textures will work.
How can I add sound to my map?
For sounds you need to have a .wav file. You can use online converters to convert mp3 etc.. to a wav file, most work straight away after converting but some need their properties edited. 44hz seems to work good for me. Also be aware that the Mp3 file size will grow considerably, if you want to keep this down abit you can convert it as MONO instead of stereo.
Once done got content browser click import, packagename is your map name then fill out the rest and import. IMPORTANT : if you want to play say a music file to all players make sure to click "create cue" when importing.
You can either highlight the sound file in the content browser and right click in your map and add ambientsound to add the sound, you can then adj settings like radius of sound, volume etc..
If you want it to play to all players at the same time and volume open up kismet, right click > New Action > Sound > Play sound. this will place a node in kismet, in the options for the sound file you assign the CUE file and then hook it upto a trigger or level loaded or however you want to use it.
Back to the ambient sound, there are a few choices, an ambientsoundsimple will play whenever you go near it, or if you want one to toggle, use the ambientsoundtoggle, this one can be toggled using kismet.
How can I add custom staticmeshes?
You can import staticmeshes in the form of an .FBX file, the process is simple, in content browser click import, then fill out the map name etc.. and click import. The mesh should be now visible in your browser. BE AWARE there will in most instances be NO COLLISION on the mesh. depending where you are placing it that might be ok(its better to have no collision on meshes that the player cannot touch for performance reasons) but if it needs collision you can do so by going to the mesh in the browser and double clicking, up the top line you will see "collision" in the drop down box you can select an option to add collision.There is also a small icon which looks like a square with a green outline that if clicked will show collision bounds in the preview. This is mainly for square shapes and complex shapes should either have custom collision.or blocking volumes.
My Map size is HUGE after adding lots of custom things!
2 Ways to reduce the size are, firstly by publishing the map (see first tip) you will compress textures, this can decrease the file size a lot.
Secondly if you open up world properties (click the binoculars in the top bar and search for world you will see it, click it and click the box properties), scroll down to Lightmass and check Force no precomputed lighting then build lighting. This is not really recommended though and even though I have seen no real difference and it reduced the file size a lot, should only be used for massive files after publishing but better to not use at all unless you have the "burnt" effect below
When I build the lighting meshes turn black!
This could be cause by a few things, is there a lighting volume around the meshes? is there a light? sometimes its the simplist things.
If you have check the above and its still black try double clicking the mesh to bring up its properties and find lighting>lighting channels try changing the channel ie if its indoor change to outdoor, Did it light the mesh? if so either check your lighting volume or leave the channel changed and click override lighting channel.
If the mesh stays dark still try turning off precomputed lighting as described in tip above this one,if that fixes it you may have to leave this setting as it seems sometimes it can "burn" a shadow onto a mesh.
Can I use Terrain or Landscape?
As of now I believe Landscape is not working as in compiling the material of it, even though in game and editor it will show the material on the landscape it will not work online.
You can use terrain in the editor but not use it in game I believe this is to do with splatter maps. You could waste a lot of time building the terrain to only have it not work online.
My wall or ceiling spawners are not working!
I personally found that wall spawners do not like to be too high and also make sure to check they are on a trigger volume and you must set max trigger count to 0 in kismet and make sure they are all linked up. You can set spawner to wallHigh which normally works for higher spawns but I have noticed sometimes they still wont spawn.
How can I show text on screen?
In kismet under New Action>Misc>Draw Text, from here it will show the node in your kismet sequence, in this nodes properties you can message and size/location. You must select a font from the content browser (KF2 has one already) make sure to connect a trigger or a means of firing the text. IN the text properties if display time is set to -1 it will work on the hide and show inputs otherwise you can set the item to display message.
In addition if you want to display on a particular item say a door, just check the box display on item and connect the item to the bottom node.
How can I hide items until I need them to be seen?
A handy little node is called "toggle hidden" say for instance you have something falling from the sky when something flies over you can just set that item in the sky and hide it.
To do so, add the item to the level as an INTERPACTOR and highlight it, go into kismet and right click and add object, this will create a circle with the interactor name in it. Then right click , New action>Toggle>Toggle hidden. Connect the circle to the bottom connector and then add a level loaded and set that to the hide input. Now when you want to unhide the object have something go into thte unhide node ie a trigger or something.
Very handy for certain things.
How can I attach things to things?
Simple, say you want to attach an emitter to a moving object, postion emitter where you want it, then open its properties scroll down to attachment and add the name of the item to attach too ie interpactor_0 after this the emitter will move with the interpactor specified. Make sure to tick the hard attach box too.
Are there shortcut buttons?
Yes,
Shortcut keys are here http://blog.tiaan.com/link/2010/07/24/unreal-technology-udk-hotkeys-shortcuts
Lighting volumes indoor and outdoor
This is all down to personal preference, the way I norm do it is to put a volume covering the insides of any buildings etc.. and having no volume covering the outside, if you use an indoor volume around your indoor areas then when you build lighting this "should" change all the meshes within the volume to indoor and the ones outside the volume to outdoor. Sometimes it misses some meshes and you can easy go into the meshes properties and change the lighting channel (making sure to tick the override auto lighting channels check box).
Also make sure that any lights within these volumes are set to indoor unless you want the light to illuminate outside the volume too.
I get a warning when importing about FBX version!
Do not worry this happens a bit and should make no difference within the editor.
I got a some message about too many something when importing.
If your model is too complex then it will need to be split into pieces within a 3d program, for instance within 3ds max you can turn on xview to show vertices and polygons.
Matinee will not move my object
Common mistake is to not set the interpactor to PHYS_interpolating within the properties. Double click the mesh and scroll down and change the drop down to the above.
Also make sure you are moving an interpactor and not a staticmesh. If it is a static mesh right click and Convert>Convert to mover. It should appear as purple in the wireframe view.
I want effects to happen at certain times with matinee, ie a train catching fire etc..
After you have created your matinee sequence to for instance move a train you can add another track called "Event" once you create the event track move the time slider to when you want the even to happen and add a keyframe and name it whatever you want (ie, trainfire). Whilst this looks like it doe snot do much if you exit matinee back to kismet you will see a new output from the matinee node with the name of the even keyframe you added, connect this to a toggle and the emitter or whatever you want and when the timeline hits this key it will fire a signal out to the toggle to trigger it.
This is a good way to time events to a mover or sequence without having to guess times with delays.
All my doors are open at the beginning of the level
right Click on one of the door actors in the level (looks like a little man) the up the top click select then all kfdoor actors, go into kismet and hold down T and press the left mouse button, this will add a toggle, right click on the Target output of the toggle and click assign objects, this will add all the door actors to the toggle. Create a level loaded node and connect the begging of level node to the toggle input of the toggle. All the doors will not close upon level starting.
I am creating a rotating object like a wheel do I have to use matinee to rotate it?
No there is a simpler way, firstly make sure the mesh is an interpactor or mover, the go into properties, you will find a section to change the PHYS of the object, change this to PHYS_Rotating and then below change the Yaw etc until you find your sweet spot
I have added an interpactor but can walk though it!
When you add a mover or interpactor it has no collision, right click it select Collision>Block all now it will be solid again
I will update this thread as / when I have more time but feel free to ask any question etc.. and add your tips
Here are a few hints and tips for using KF2 SDK please feel free to add any further tips to keep things in one place and neat. You may know better ways or faster ways to do some of the things listed but these have personally worked for me!
FIRSTLY SAVE OFTEN infact more than often as the editor has a habit to crash alot
How do you add custom textures to things?
You can find many custom textures around the net and these can be implemented very easily. First find your texture and save to your PC.
Next step I use GIMP which is like photoshop. Open the texture and rescale to the power of 2 ie, 128x128, 256x256, 512x512 and so on.
Save to your desktop as a PNG file. Next open up content browser in the KF2SDK and click import. Make sure to name the import destination the same as your map Name. Ie testmap.
Once imported you will see it listed, it will say texture2d in the box, this is good but will not work on meshes. You could create a new material but it would be a lot of work building this to have say reflections etc..
In the content browser find the "Packages" folder and right click > Fully load. Once completed search for metal and find the Metal MaterialInstanceConstant. double click this and a box will appear with options etc.. under parent there will be a material name select and right click and copy.
Back in your map folder right click in the box your texture is in and select new materialinstanceconstant, make sure the package name is your maps name and fill out the other names. Open this MIC and paste the parent material name from the other one into the parent of the new one.
You will see in the preview box a ball with a texture. Scroll down to parameters in the box and find Texture check box, tick this and highlight your new texture in the content brower. click the green arrow at the end of the texture line and it will add your new texture. Congrats you can now assign this MIC to static meshes in the map.
Custom textures are not showing in my map online or to other people!
The way I found to fix this is, when your ready to upload your map click the build all like normal, once finished save and then look to the right of the build all button, there is a button that says publish, click this and a box will appear, IF this box says something like cannot compile material blah blah in yellow, let it finish close the box and try again, you have to keep running this until you get no yellow errors for materials or textures.
Save and then upload as normal and textures will work.
How can I add sound to my map?
For sounds you need to have a .wav file. You can use online converters to convert mp3 etc.. to a wav file, most work straight away after converting but some need their properties edited. 44hz seems to work good for me. Also be aware that the Mp3 file size will grow considerably, if you want to keep this down abit you can convert it as MONO instead of stereo.
Once done got content browser click import, packagename is your map name then fill out the rest and import. IMPORTANT : if you want to play say a music file to all players make sure to click "create cue" when importing.
You can either highlight the sound file in the content browser and right click in your map and add ambientsound to add the sound, you can then adj settings like radius of sound, volume etc..
If you want it to play to all players at the same time and volume open up kismet, right click > New Action > Sound > Play sound. this will place a node in kismet, in the options for the sound file you assign the CUE file and then hook it upto a trigger or level loaded or however you want to use it.
Back to the ambient sound, there are a few choices, an ambientsoundsimple will play whenever you go near it, or if you want one to toggle, use the ambientsoundtoggle, this one can be toggled using kismet.
How can I add custom staticmeshes?
You can import staticmeshes in the form of an .FBX file, the process is simple, in content browser click import, then fill out the map name etc.. and click import. The mesh should be now visible in your browser. BE AWARE there will in most instances be NO COLLISION on the mesh. depending where you are placing it that might be ok(its better to have no collision on meshes that the player cannot touch for performance reasons) but if it needs collision you can do so by going to the mesh in the browser and double clicking, up the top line you will see "collision" in the drop down box you can select an option to add collision.There is also a small icon which looks like a square with a green outline that if clicked will show collision bounds in the preview. This is mainly for square shapes and complex shapes should either have custom collision.or blocking volumes.
My Map size is HUGE after adding lots of custom things!
2 Ways to reduce the size are, firstly by publishing the map (see first tip) you will compress textures, this can decrease the file size a lot.
Secondly if you open up world properties (click the binoculars in the top bar and search for world you will see it, click it and click the box properties), scroll down to Lightmass and check Force no precomputed lighting then build lighting. This is not really recommended though and even though I have seen no real difference and it reduced the file size a lot, should only be used for massive files after publishing but better to not use at all unless you have the "burnt" effect below
When I build the lighting meshes turn black!
This could be cause by a few things, is there a lighting volume around the meshes? is there a light? sometimes its the simplist things.
If you have check the above and its still black try double clicking the mesh to bring up its properties and find lighting>lighting channels try changing the channel ie if its indoor change to outdoor, Did it light the mesh? if so either check your lighting volume or leave the channel changed and click override lighting channel.
If the mesh stays dark still try turning off precomputed lighting as described in tip above this one,if that fixes it you may have to leave this setting as it seems sometimes it can "burn" a shadow onto a mesh.
Can I use Terrain or Landscape?
As of now I believe Landscape is not working as in compiling the material of it, even though in game and editor it will show the material on the landscape it will not work online.
You can use terrain in the editor but not use it in game I believe this is to do with splatter maps. You could waste a lot of time building the terrain to only have it not work online.
My wall or ceiling spawners are not working!
I personally found that wall spawners do not like to be too high and also make sure to check they are on a trigger volume and you must set max trigger count to 0 in kismet and make sure they are all linked up. You can set spawner to wallHigh which normally works for higher spawns but I have noticed sometimes they still wont spawn.
How can I show text on screen?
In kismet under New Action>Misc>Draw Text, from here it will show the node in your kismet sequence, in this nodes properties you can message and size/location. You must select a font from the content browser (KF2 has one already) make sure to connect a trigger or a means of firing the text. IN the text properties if display time is set to -1 it will work on the hide and show inputs otherwise you can set the item to display message.
In addition if you want to display on a particular item say a door, just check the box display on item and connect the item to the bottom node.
How can I hide items until I need them to be seen?
A handy little node is called "toggle hidden" say for instance you have something falling from the sky when something flies over you can just set that item in the sky and hide it.
To do so, add the item to the level as an INTERPACTOR and highlight it, go into kismet and right click and add object, this will create a circle with the interactor name in it. Then right click , New action>Toggle>Toggle hidden. Connect the circle to the bottom connector and then add a level loaded and set that to the hide input. Now when you want to unhide the object have something go into thte unhide node ie a trigger or something.
Very handy for certain things.
How can I attach things to things?
Simple, say you want to attach an emitter to a moving object, postion emitter where you want it, then open its properties scroll down to attachment and add the name of the item to attach too ie interpactor_0 after this the emitter will move with the interpactor specified. Make sure to tick the hard attach box too.
Are there shortcut buttons?
Yes,
Shortcut keys are here http://blog.tiaan.com/link/2010/07/24/unreal-technology-udk-hotkeys-shortcuts
Lighting volumes indoor and outdoor
This is all down to personal preference, the way I norm do it is to put a volume covering the insides of any buildings etc.. and having no volume covering the outside, if you use an indoor volume around your indoor areas then when you build lighting this "should" change all the meshes within the volume to indoor and the ones outside the volume to outdoor. Sometimes it misses some meshes and you can easy go into the meshes properties and change the lighting channel (making sure to tick the override auto lighting channels check box).
Also make sure that any lights within these volumes are set to indoor unless you want the light to illuminate outside the volume too.
I get a warning when importing about FBX version!
Do not worry this happens a bit and should make no difference within the editor.
I got a some message about too many something when importing.
If your model is too complex then it will need to be split into pieces within a 3d program, for instance within 3ds max you can turn on xview to show vertices and polygons.
Matinee will not move my object
Common mistake is to not set the interpactor to PHYS_interpolating within the properties. Double click the mesh and scroll down and change the drop down to the above.
Also make sure you are moving an interpactor and not a staticmesh. If it is a static mesh right click and Convert>Convert to mover. It should appear as purple in the wireframe view.
I want effects to happen at certain times with matinee, ie a train catching fire etc..
After you have created your matinee sequence to for instance move a train you can add another track called "Event" once you create the event track move the time slider to when you want the even to happen and add a keyframe and name it whatever you want (ie, trainfire). Whilst this looks like it doe snot do much if you exit matinee back to kismet you will see a new output from the matinee node with the name of the even keyframe you added, connect this to a toggle and the emitter or whatever you want and when the timeline hits this key it will fire a signal out to the toggle to trigger it.
This is a good way to time events to a mover or sequence without having to guess times with delays.
All my doors are open at the beginning of the level
right Click on one of the door actors in the level (looks like a little man) the up the top click select then all kfdoor actors, go into kismet and hold down T and press the left mouse button, this will add a toggle, right click on the Target output of the toggle and click assign objects, this will add all the door actors to the toggle. Create a level loaded node and connect the begging of level node to the toggle input of the toggle. All the doors will not close upon level starting.
I am creating a rotating object like a wheel do I have to use matinee to rotate it?
No there is a simpler way, firstly make sure the mesh is an interpactor or mover, the go into properties, you will find a section to change the PHYS of the object, change this to PHYS_Rotating and then below change the Yaw etc until you find your sweet spot
I have added an interpactor but can walk though it!
When you add a mover or interpactor it has no collision, right click it select Collision>Block all now it will be solid again
I will update this thread as / when I have more time but feel free to ask any question etc.. and add your tips
Last edited: