Necrogiant
HV June - 6 - 2010 News, Articles14 COMMENTS

This is an article about basic knowledge to modifiy existing levels in game.

When you install full version of Painkiller you get the tool PainEdit – level editor in the default location:

  • C:\Program Files\DreamCatcher\Painkiller\Bin\Editor

The following image illustrates the program.

1. Loading of map

Select in top menu:

  • File = > Load Level => DM_Cursed (for example this map) => Load

You will see what on following image.

Select in top menu:

  • File = > Save All As… => DM_Cursed2

Map name DM_Cursed2 is for example.

In menu Game Objects (right column) you can change settings of map.

  • Game Objects => CLevel => Double click or click right key of mouse & select Properties

Examples: you can add music track in field Music or change size of map with Scale.

Info: in field Map you can add a map in *.mpkfile format, when you are making a new map, but this article is about basic modification existing maps.

2. Move on map

To move on map use default keys W, S, A & D and pressing right mousebutton to change the direction, so you can fly on the map like a spectator in multiplayer.

To move you can use also only the mouse, with:

  • forward – pressed left button of mouse & move of mouse to forward
  • back – pressed left button of mouse & move of mouse to back
  • turn left – pressed left button of mouse & move of mouse to left
  • turn right – pressed right button of mouse & move of mouse to right
  • move left – pressed right & left button of mouse and move to left
  • move right – pressed right & left button of mouse and move to right

If you press F key on your keyboard you can switch the player mode – so you can look at the map from his perspective, to return to edit mode press F key again.

3. Placement of multiplayer items

Right menu (right column) have weapons, ammo packs, armors, powerups and health in Templates:

  • Templates => Ammo
    • AmmoBolt.CItem – bolt ammo
    • AmmoElectro.CItem – electro ammo
    • AmmoFreezer.CItem – freezer ammo
    • AmmoGrenades.CItem – grenade & rocket launcher ammo (default 7 rockets)
    • AmmoGrenadesBig.CItem – grenade & rocket launcher (default 12 rockets)
    • AmmoHeaterBomb.CItem – heater ammo
    • AmmoMiniGun.CItem – chaingun ammo
    • AmmoRifle.CItem – sub machine gun
    • AmmoShotgun.CItem – shotgun ammo
    • AmmoShurikens.CItem – shurikens
    • AmmoStakes.CItem – stakes
    • MegaPack.CItem – ammo to all weapons
  • Templates => Armor – armors
    • ArmorMedium.CItem – silver armor
    • ArmorStrong.CItem – gold armor
    • ArmorWeak.CItem – bronze armor
  • Templates => Health
    • Health.CItem – 25 HP
    • MegaHealth.CItem – 100 HP
  • Templates => Gameplay – MP items
    • Flag.CItem – flag to CTF mode
    • JumpPad.CItem – jumppad
    • pentagram.CItem – immortality (powerup)
    • PlayerRespawn.CArea – respawn of players
    • Quad.CItem – rage (powerup)
    • WeaponModifier.CItem – weapon modifier (powerup)
  • Templates => Weapons => PickableItems – weapons
    • IBoltGunHeater.CItem – boltgun/heater
    • IDriverElectro.CItem – electrodriver
    • IMiniGunRL.CItem – rocket launcher/chaingun
    • IRifleFlameThrower.CItem – sub machine gun/flamethrower
    • IShotgunFZ.CItem – shotgun/freezer
    • IStakeGunGL.CItem – stakegun/grenade launcher

To place new items (for example ammo) double click or press right mousebutton on selected item and choose Create Object, example: AmmoElectro.CItem:

In Game Objects you can edit properties of selected item, example:

  • Game Objects => CItem => AmmoGrenadesBig_001 => Double click or press right button of mouse on selected item and choose Properties

You see this on below image. You can change time of respawn (RespawnTime), increase/reduce ammo (AmmoAdd).

In section no 4 of this article i will describe how to easily move and rotate items.

In properties of Ammo you can set the default ammo of weapon, which you can see below (freezer & shogun – 0 & 10 ).

4. Placement and editing of another items

To place new items, select element in right menu (double click or press right mousebutton on selected item and choose Create Object), for example BarrelBig_MP.CItem:

  • Templates = > ItemsMP => BarrelBig_MP.CItem

In the i>Templates folder are a lot of containers, barrels and another items.

After placing the item you see three axes (green, red & blue) on this element. It can be used to adjust position of item when it isn’t located exactly where it was expected. Hover your mouse over one of these axes and hold the Shift key, move mouse along axis of one of the selected until a satisfactory position.

Axes (green, red and blue) can be used to rotate object. Hover your mouse over one of these axes and hold the Shift key and right mouse button, move mouse along axis of one of the selected until a satisfactory position (turn of item).

Choosing from the menu on the right side (default) Properties, example:

  • Game Objects = > Citem => BarrelBig_MP_001 (double click)

you can change properties of the element, such as changing value of Scale – decrease/increase size of object.

5. Placement of teleport

Unfortunately, a very popular template of teleport like on maps DM_1v1_meatless, DM_Psycho, DM_Sacred does not exist in PainEdit, this article is about basis of using this tool, so will be used another item as teleport. Go to ParticleFX and find something interesting to using as teleport, example:

  • Templates => ParticleFX => fragenelektro.CParticleFX

Then, based on knowledge from the section no 4 should be placed in the desired visualization of teleport.

Press the F key and go where the player should be after a teleportation. Then again, press F and select from the menu:

  • Templates => Gameplay => PlayerRespawn.CArea

Next step: go to the Game Objects:

  • Game Objects => CArea => PlayerRespawn_009

Click PlayerRespawn_009 (no 9, since in this case is 9th – yours could be different) two times (not fast) to change name for example: Tele2 (2 – cause Tele1 already exists in this case).

Click twice Tele2 to go to its properties or click on Tele2 right mouse button and select Properties. Parameter BaseObj change from PlayerRespawn.CArea to CArea like below:

Return to the teleporter on your map. From menu GamePlay insert Teleport:

  • Templates => Gameplay => Teleport.CBox

Then adjust position of the box with teleport to its visualization (previously added fragenelektro.CParticleFX) and adjust its size (Size).

Go to Game Objects:

  • Game Objects => CBox => Teleport_002

Click Teleport_002 (no 2, since in this case is 2nd teleport – in your can be other). Double click on Teleport_002
to go to its properties or click on Teleport_002 right mouse button and select Properties. In parameter AName set Tele2:

  • DestPoint => AName => Tele2

like on this image:

6. Removing

By creating a map, after the addition of large quantities of items, this can be confusing and not remember where is item which has been placed. All items can be easily found on the map. Select item in menu, for example: IMiniGunRL_001.

  • Game Objects => IMiniGunRL_001 => Click right button of mouse on this => Look at

In this way you will be automatically transferred to position where is a selected item.

Removing of items is easy, select item, which you want to delete, for example: IMiniGunRL_001.

  • Game Objects => IMiniGunRL_001 => Click right button of mouse => Delete

Item will be removed.

7. Entry

Select in top menu:

  • File = > Save Level Properties
  • File = > Save Level and Objects

When map is ready, after tests, you can create file *.pkm, for this from the top menu select:

  • File => Load level => Select DM_Cursed2 => Create PKM

Start Painkiller game, select map (DM_Cursed2 in this case) and test. You can download map, which was created in this article: DM_Cursed2. HF!

Poland

Polish version »

Celem tego artykułu jest przybliżenie podstaw edycji poziomów osobom, które nie mają o tym pojęcia.

Instalując pełną wersję Painkillera otrzymujemy narzędzie PainEdit – edytora poziomów w grze umiejscowionego w przykładowej, domyślnej lokacji:

  • C:Program FilesDreamCatcherPainkillerBinEditor

Poniższy obrazek ilustruje wygląd programu.

1. Ładowanie mapy

W celu załadowania przykładowej istniejącej mapy należy wybrać z górnego menu:

  • File = > Load Level => DM_Cursed => Load

Powinieneś ujrzeć to samo co ilustruje poniższy obrazek.

Z menu górnego wybierz:

  • File = > Save All As… => DM_Cursed2

Nazwa DM_Cursed2 jest oczywiście przykładowa.

W Game Objects można zmieniać ustawienia mapy.

  • Game Objects => CLevel => Dwuklik lub kliknięcie prawym klawiszem myszy i wybranie Properties

Przykładem zmian we właściwościach może być dodanie muzyki w polu Music lub zmiana rozmiaru mapy w polu Scale przez zmianę mnożnika (właściwości te widać na poniższym obrazku).

Uwaga: w polu Map można wybrać plik z mapą w formacie *.mpk, przydatne gdy tworzymy mapę od podstaw, gdyż taki format pików obsługuje Painkiller. Jednak ten artykuł dotyczy prostej modyfikacji istniejących map.

2. Poruszanie się po mapie

Do poruszania się po mapie należy używać tych samych klawiszy, które są skonfigurowane w grze, domyślnie W, S, A i D oraz wciśniętego prawego klawisza myszy do zmian kierunku, co umożliwia proste latanie po mapie niczym tryb spectator w grze sieciowej.

Poruszać się po mapie można również wykorzystując samą mysz:

  • przód – wciśnięty lewy klawisz myszy i ruch do przodu myszą
  • tył – wciśnięty lewy klawisz myszy i ruch do tyłu myszą
  • obrót w lewo – wciśnięty lewy klawisz myszy i ruch w lewo myszą
  • obrót w lewo – wciśnięty prawy klawisz myszy i ruch w prawo myszą
  • ruch w lewo – wciśnięte klawisze prawy i lewy myszy oraz ruch w lewo myszą
  • ruch w prawo – wciśnięte klawisze prawy i lewy myszy oraz ruch w prawo myszą

Jeśli wciśniesz na klawiaturze klawisz F możesz przejść w tryb gracza – dzięki czemu możesz spojrzeć na mapę z jego perspektywy, by powrócić do trybu edycji wciśnij ponownie klawisz F.

3. Wstawianie przedmiotów

W menu domyślnie umieszczonym po prawej stronie mamy do dyspozycji bronie, amunicję, zbroję oraz zdrowia. Znajdują się one w zakłądce Templates:

  • Templates => Ammo – amunicja
    • AmmoBolt.CItem – amunicja do bełtacza
    • AmmoElectro.CItem – amunicja do elektro
    • AmmoFreezer.CItem – amunicja do zamrażacza
    • AmmoGrenades.CItem – amunicja do granatnika i rakietnicy (domyślnie 7 pocisków)
    • AmmoGrenadesBig.CItem – amunicja do granatnika i rakietnicy (domyślnie 12 pocisków)
    • AmmoHeaterBomb.CItem – amunicja do minigranatnika
    • AmmoMiniGun.CItem – amunicja do miniguna
    • AmmoRifle.CItem – amunicja do peema
    • AmmoShotgun.CItem – amunicja do strzelby
    • AmmoShurikens.CItem – shurikeny
    • AmmoStakes.CItem – amunicja do kołkownicy
    • MegaPack.CItem – zbiór amunicji do wszystkich broni
  • Templates => Armor – zbroje
    • ArmorMedium.CItem – srebrna zbroja
    • ArmorStrong.CItem – złota zbroja
    • ArmorWeak.CItem – brązowa zbroja
  • Templates => Health – zdrowie
    • Health.CItem – zdrowie (25 HP)
    • MegaHealth.CItem – zdrowie (100 HP)
  • Templates => Gameplay => – przedmioty MP
    • Flag.CItem – flaga do trybu CTF
    • JumpPad.CItem – jumppad (wyskocznia)
    • pentagram.CItem – nieśmiertelność (powerup)
    • PlayerRespawn.CArea – miejsce odrodzania się graczy
    • Quad.CItem – światlo (powerup)
    • WeaponModifier.CItem – modyfikator broni (powerup)
  • Templates => Weapons => PickableItems – bronie
    • IBoltGunHeater.CItem – bełtacz/minigranatnik
    • IDriverElectro.CItem – elektro/szurikeny
    • IMiniGunRL.CItem – rakietnica/minigun
    • IRifleFlameThrower.CItem – peem
    • IShotgunFZ.CItem – strzelba/zamrażacz
    • IStakeGunGL.CItem – kołkownica/granatnik

W celu umieszczenia na mapie nowych przedmiotów, np. amunicji, z menu wstaw (dwuklikiem lub kliknięciem prawym klawiszem myszy na wybranym elemencie i wyborze Create Object) np. AmmoElectro.CItem:

W Game Objects można edytować właściwości dodanego elementu, np.:

  • Game Objects => CItem => AmmoGrenadesBig_001 => Dwuklik lub kliknięcie prawym klawiszem myszy na wybranym elemencie i wybór opcji Properties

W efekcie uzyska efekt jak na poniższej ilustracji. Możemy zmienić czas respawnu przedmiotu po jego zebraniu (RespawnTime), zwiększyć/zmniejszyć ilość amunicji (AmmoAdd) jaką dodaje element do konkretnej broni.

W punkcie 4 artykułu będzie opisane jak w prosty sposób przesuwać, obracać elementy.

We właściwościach broni możemy w polu Ammo ustalić ilość amunicji jaką będzie mieć broń w chwili podniesienia jej, co ilustruje poniższa grafika (w tym przypadku zamrażacz i strzelba, odpowiednio 0 i 10 pocisków).

4. Wstawianie i edycja innych przedmiotów

W celu umieszczenia na mapie jakichś nowych przedmiotów z menu domyślnie umieszczonego po prawej stronie wybierz (dwuklikiem) np. BarrelBig_MP.CItem:

  • Templates = > ItemsMP => BarrelBig_MP.CItem

Templates zawiera dużo różnych modeli beczek, kontenerów, skrzyń i wiele innego typu przedmiotów.

Na świeżo umieszczonym elemencie znajdują się 3 osie (zielona, czerwona i niebieska). Można je wykorzystać do dostosowania położenia elementu gdy ten nie znajduje się dokładnie tam gdzie było to oczekiwane. W tym celu najedź myszą na jedną z tych osi i przytrzymując klawisz Shift poruszaj się myszą wzdłuż wybranej jednej z wybranych osi do momentu uzyskania satysfakcjonującego położenia.

Wspomniane powyżej osie (zielona, czerwona i niebieska) można wykorzystać do obracania przedmiotu. W tym celu przytrzymaj jednocześnie klawisze Shift oraz prawy myszy i najeżdżając na odpowiednią oś wykonuj ruchy myszą (obroty elementu) do uzyskania satysfakcjonującego rezultatu.

Wybierając z menu po prawej (domyślnie) stronie Properties

  • Game Objects = > Citem => BarrelBig_MP_001 (dwuklik)

można wpływać na właściwości elementu, np. zmieniając wartość Scale można zmniejszać/zwiększać rozmiar przedmiotu.

5. Wstawianie teleportu

Niestety PainEdit nie posiada bardzo popularnego szablonu teleportu w postaci luster znanych z takich map między innymi jak DM_Sacred, DM_1v1_meatless, DM_Psycho, a artykuł jest o podstawach użytkowania tego narzędzia, więc jako teleport zostanie użyty inny element. W tym celu warto przejść do zakładki ParticleFX i poszukać czegoś interesującego co mogłoby służyć jako ów teleport, np.:

  • Templates => ParticleFX => fragenelektro.CParticleFX

Następnie w oparciu o wiedzę z punktu 4 należy umieścić wizualizację teleportu w pożądanym miejscu.

Wciśnij klawisz F i przejdź w miejsce gdzie ma pojawiać się gracz po teleportacji. Następnie ponownie wciśnij F i z menu wybierz:

  • Templates => Gameplay => PlayerRespawn.CArea

W kolejnym kroku przejdź do Game Objects :

  • Game Objects => CArea => PlayerRespawn_009

Kliknij nazwę PlayerRespawn_009 (nr 9, ponieważ w tym przypadku jest to dziewiąty element – w twoim może być inny) dwa razy w pewnych odstępie czasowym by zmienić nazwę na np. Tele2 (numeracja ta wynika z faktu, że Tele1 już istnieje w tym przypadku).

Kliknij dwa razy Tele2 by przejść do jego właściwości lub kliknij na Tele2 prawym klawiszem myszy i wybierz Properties. W parametrze BaseObj zmień PlayerRespawn.CArea na CArea jak na poniższej ilustracji.

Wróć do miejsca, w którym znajduje się teleport na mapie. Z menu GamePlay wstaw teleport:

  • Templates => Gameplay => Teleport.CBox

Następnie dostosuj położenie boksu z teleportem w stosunku do jego wizualizacji (umieszczony wcześniej fragenelektro.CParticleFX) oraz dostosuj jego rozmiar (Size).

Przejdź do Game Objects :

  • Game Objects => CBox => Teleport_002

Kliknij nazwę Teleport_002 (nr 2, ponieważ w tym przypadku jest to drugi teleport – w twoim może być inny). Kliknij dwa razy Teleport_002 by przejść do jego właściwości lub kliknij na Teleport_002 prawym klawiszem myszy i wybierz Properties. W parametrze AName ustaw Tele2:

  • DestPoint => AName => Tele2

jak na poniższej ilustracji.

6. Usuwanie

Tworząc mapę, po dodaniu sporej ilości przedmiotów można się pogubić i nie pamiętać gdzie jaki element został umieszczony. Wszystkie elementy można w prosty sposób odnaleźć na mapie. W tym celu wybierz szukany przedmiot, np.: IMiniGunRL_001.

  • Game Objects => IMiniGunRL_001 => kliknij prawym klawiszem myszy => Look at

Dzięki temu zostaniemy automatycznie przeniesieni w miejsce gdzie znajduje się wybrany element.

Zaś samo usuwanie przedmiotu jest bardzo proste, należy wybrać element, który chce się usunąć, np.: IMiniGunRL_001. .:

  • Game Objects => IMiniGunRL_001 => Kliknij prawym klawiszem myszy => Delete

Przedmiot zostanie usunięty.

7. Zapis

Z menu górnego wybierz:

  • File = > Save Level Properties
  • File = > Save Level and Objects

Na sam koniec tworzenia mapy, po testach choćby z botem, warto stworzyć plik *.pkm, w tym celu z górnego menu wybierz

  • File => Load level => Zaznacz DM_Cursed2 => Create PKM

Uruchom grę Painkiller, wybierz mapę (DM_Cursed2 w tym przypadku) i sprawdź działanie. HF!

  • a very useful tutorial

  • HV

    Nice to hear, a next tutorial is coming.

  • greentechb

    thank you for the tutorial. it is very helpful.

  • Mike

    Why won’t the gate items move when dragging the three axes?  I can successfully move items such as barrels and boxes but the gates will not move.  The axes move but the gate stays where it initially gets placed when I Create Object.

    • HV

      Hello Mike!
      Do you mean as “gates” the item “slab”?
      It works fine for me

      I’m sorry for the strange quality, it was recorded by Fraps ;d

      • Mike

        Hello HV,
        No, I meant CItems such as brama, AC_Grate and gate.  However, I tried “slab” instead, per your reply, and that works much better for my needs.  I am making smaller versions of maps such as DM_Cursed by blocking doors and windows using slabs.  Now my problem is I cannot create a PKM file.  I use the File -> Load Level and select my edited map then click on “Create PKM” button but the resulting file is only 36KB and doesn’t contain my slabs.  How do I create a PKM file?  Thanks!

      • Mike

        Hello HV,
        No, I meant CItems such as brama, AC_Grate and gate.  However, I tried “slab” instead, per your reply, and that works much better for my needs.  I am making smaller versions of maps such as DM_Cursed by blocking doors and windows using slabs.  Now my problem is I cannot create a PKM file.  I use the File -> Load Level and select my edited map then click on “Create PKM” button but the resulting file is only 36KB and doesn’t contain my slabs.  How do I create a PKM file?  Thanks!

    • HV

      1. Click “File” => “Extract Game Data”
      2. Then “File” => “Load level” => Select new map => “Create PKM”

      • Mike

        Hello HV,
        I added a barrel and a slab to DM_Cursed.  Then I created a PKM file.  I loaded the PKM file in Painkiller in multiplayer mode.  The barrel was there but not the slab.

        Our group plays online once a week on a server that I run.  There are a small number of us so we need small maps.  Is there some other way to block off sections of existing deathmatch maps to create smaller maps?

        Thanks.

  • T0rmentoRrr

    Ok.. what i don’t get is this… how do I make things happen like launch some monsters after i teleport or after i take a secret..if i put commands on that onTouch thingy from the teleport or from the secret area it does nothing.. what i do wrong?

    • Phantom

      Hey again! You’re not doing anything wrong. It’s just it does not work to launch stuff from the secret area or teleport, “Actons” tree… SImply use an AmbushForPlayer by placing it where the destination ( CArea ) is so that you will teleport INTO IT and write all your commands on that specific ambush.
      Regarding the secret area you can do the same.. place an AmbushForPlayer box near the SecretArea box and use the ambush to launch anything you want.

      Have fun! 🙂

      • T0rmentoRrr

        Well well, again thanks for the help ! How did you find all this stuff…Why did I not think of that trick with the ambush.. you must have some experience with this. And that new command I never seen here…you taught me to use for the monster corpses, very useful it worked. Tell me just this did you have professional help and are there many new commands like that?

        • Phantom

          You’re welcome! I am glad I helped. Well I had a lot of help from the original levels and scripts made by Painkiller’s developers,that the games comes with. Also a very good friend of mine helped me too.
          Yes well there are a more commands like this and tools to be used in PK. You’ll also get the hang of many techniques and tricks if you work more… your ideas will come a loooot easier.

          Yes, like you said, I do have some experience.. but I have only been doing this for a year and a half or more.

          Quick question: are you planning to publish your work?

        • T0rmentoRrr

          No No ! I won’t publish anything.. this is just for myself. Like I said I want to discover more from Painkiller behind the scenes. Thanks again for teaching me.

Categories

Painkiller is a first-person shooter game released on April 12, 2004. The game takes place in Purgatory and Hell. The main character is Daniel Garner.