Please or Register to create posts and topics.

Hammer MEGA Guide

Page 1 of 2Next

Hi just moved over from Portal-Mods.com got sick of spam so here's my main post it basicly tells ya how to do everything in portal:

First of all I do not take any credit for this post as it is mainly taken from other posts in the forum. Other than that I will be updating this post as much as I can so it's easy to find everything you need to know:

Index:

    - Main Hammer Details

      - Setting up Hammer for Portal use
      - Mapping Basics

        - Portal Gun
        - Non-Portalable Walls
        - Cube/Weighted Companion Cube
        - Turrets
        - Portals

      - Advanced Mapping

        - Non-Prefab Button + Double Sliding Doors Example
        - Ball Launcher/Catcher - Fixed
        - Making Indicator Strips

    - Fix for the textures in Hammer
    - Making Indicator Strips
    - Making a box dropper
    - Toxic Water

      - Goo
      - Mist on top
      - Making it kill you
      - Removing boxes that get submerged

    - Detatchable security cameras
    - Adding a Radio (with sound)
    - Portal Prefab Pack
    - Fading and ending a map with text
    - Loading a Custom map
    - Materials
    - Were not to allow Portals
    - Workflow tip: Portal, visgroups and you
    - Making a trigger only respond to a certain thing
    - Two buttons to open a door
    - Adding the fire from the final map of portal
    - Making fire hurt players
    - Portal Cleanser
    - Portal Style lighting: An Incomplete Guide
    - Recommened way of posting maps
    - Making Textures emit light

Main Hammer Details:

ExcessNeo wrote:
Setting up Hammer for Portal use

With some credit due to: Kenjara

1. Load Up Source SDK and Create a new singleplayer mod called portalmap or something similar, this is to avoid confusion when the official config is released.

2. Using GCFScape extract the materials and models folders from "portal content.gcf" (in your steamapps folder) into your mod's directory (/steamapps/Source Mods/Your Mod Name Here/).

3. Place this Portal.fgd in /steamapps/Your Account/Source SDK/bin/

4. Extract fixvtf into /steamapps/Source Mods/Your Mod Name Here/. Then drag and drop the Materials folder onto the fixvtf executable, await it to do it's thing and press any key when prompted don't worry too much about any non-successful.

5. Load Hammer editor and setup a config using the portal.fgd and halflife2.fgd, make sure on the build programs tab maps are sent to "$SteamUserDirportalportalmaps" before running the game.

6. Make your map as per hammer but make sure you Don't run the game after compiling!

Mapping Basics

I highly recommend Halfwit-2 for learning how to use hammer, it is quite possibly the best collection of tutorials and is where I honed my skills.

Portal Gun
1. Create a new Entity (Shift + E)
2. Set it as weapon_portalgun
3. Place ontop of your info_player_start

Non-Portalable Walls
1. Create a new brush with the nodraw texture
2. With the brush highlihgted press ctrl+t (Tie to Entity)
3. Make it a func_noportal_volume
4. Place this brush infront of a wall you don't want people to be able to portal on.

Cube/Weighted Companion Cube
1. Create a new entity (Shift + E)
2. Set it as a prop_physics and place it in the world
3. In World Model set it to models/props/metal_box.mdl
4. In Skin set it to 0 for Normal Cube, 1 for Weighted Companion Cube
5. Rejoice: http://godump.gameon.co.uk/view.php?id= ... st0001.jpg

Turrets
1. Create a new entity (Shift + E)
2. Set it as npc_portal_turret_floor and place in the world

Portals
So, you have a nice map and don't want to hand the portal gun straight to your player, this is how you premake portals for the player to use.
1. Create a new entity (Shift + E)

2. Set it as prop_portal and place it 1 unit away from a wall (use [ or ] to adjust the unit size to 1 and zoom up close to the wall). Screenshot

3. You should see a yellow line sticking out of your portal entity, this is the direction the portal faces, to set the direction hit Alt + Enter to access properties and change the angle in the angles drop down (type it as the only options in the drop down are actually up and down but don't worry about that)

4. Portal Number is another thing you may want to change, the first portal should be portal 1 and the second portal should be portal 2.

5. A vital change you must make if you want more than 1 pair of portals in the level is the "Portal pair ID", just increment it by 1 every pair of portals you make simple enough.

6. The important bit to remember is the position of the yellow line is absolutely vital, the rest does not matter, just ensure the yellow line is a unit or 2 out of the wall and pointing away from the wall as demonstrated in the screenshot.

Advanced Mapping

The following step-by-steps assume good knowledge of mapping. If you haven't already I recommend visiting Halfwit-2 to work on mapping basics to some quite advanced stuff that can help make your map even more fun.

Button
The following tutorial will come first as a prefab shortly, there is a non-prefabbed button tutorial below.

Non-Prefab Button + Double Sliding Doors Example
First step is the base
1. Create a prop_static Entity (Ctrl + E)

2. Hit Alt + Enter and change the World Model to "models/props/button_base_reference.mdl"

3. Apply and you'll see the bottom half of the button on the screen.

Now we will add the button part
4. Create a prop_dynamic Entity (Ctrl + E)

5. Hit Alt + Enter and change the World Model to "models/props/button_top_reference.mdl"

6. Set the Parent to "button_door"; button_door is going to be an invisible door we use to move the top of the button down

7. Centre the top of the button on the base and lower it but make sure you leave a little for the button to lower without disappearing into the base

Now we are going to create button_door
8. Set the texture to "tools/toolsnodraw" and create a small cylinder, fit this inbetween the base and the button

9. Tie this cylinder to an entity (Ctrl + T) and set it as a func_door

10. Name it button_door and change the move direction to "90 0 0", and set the Delay Before Reset to -1

11. Click the flags tab and make sure touch opens is unchecked. Apply and close

Next is the trigger for interacting with the button
12. Set te texture to "tools/toolstrigger" and create a new block brush that covers most of the top of the button, it's ok if the corners are uncovered in the trigger, and make it thin

13. Tie it to an entity (Ctrl + T) and set the entity to trigger_multiple, name it button_trigger

14. Switch to the Outputs tab and click Add, place the following entry:
My output named: OnStartTouch
Targets entity named: button_door
Via this output: Open

15. Add another and input the following
My output named: OnEndTouch
Targets entity named: button_door
Via this output: Close

16. Click the Flags tab and make sure Clients and Physics Objects are checked or your companion cube wont hold the button down and we don't want that now do we

Now we are starting to see some progress, here comes the double door frame
17. Create an entity (Shift + E) and make it a prop_static, set the model to "models/props/door_01_frame_wide_reference.mdl"

That was simple enough, place that anywhere for now. Now for the doors
18. Create 2 prop_dynamic entities (Shift + E).

19. Name the first door_left and change the model to "models/props/door_01_lftdoor_reference.mdl", set the parent of the entity to door_left_door

20. Name the second door_right, set the model to "models/props/door_01_rtdoor_reference.mdl" and put the Parent as door_right_door

21. Align the doors inside the door frame

Now that the doors are ready we can get to work on the stuff that makes it work
22. Create 2 brushes and tie them to entities (Ctrl + T), set them both to func_door, line them up with the door models, don't worry too much about size

23. Name the first one door_left_door and set the Move Direction to "0 90 0" depending on what angle your door frame is at

24. Name the second one door_right_door and set the Move Direction to "0 270 0" depending on what angle your door frame is at

25. Set the textures to nodraw

We are nearly done, now we just add 4 more outputs to the trigger_multiple and it all is working
26. Add a new Output to the Outputs tab on button_trigger
My output named: OnStartTouch
Targets entity named: door_left_door
Via this output: Open

27. Add another
My output named: OnStartTouch
Targets entity named: door_right_door
Via this output: Open

28. Add yet another
My output named: OnEndTouch
Targets entity named: door_left_door
Via this output: Close

29. Add the final
My output named: OnEndTouch
Targets entity named: door_right_door
Via this output: Close

And now.....you are finished. Give yourself a pat on the back for sticking with it and you are ready to create some excellent puzzles.

Ball Launcher/Catcher - Fixed
This gets quite complicated and I will be hosting images showing outputs rather than typing to save me overkilling this thread. First off I will be dealing with the easiest part of all, the Launcher.

1. Place a prop_dynamic entity (Shift + E) and set the model to "models/props/combine_ball_launcher.mdl", name it ball_launch, Apply and close.

2. Place a point_energy_ball_launcher entity (Shift + E) and align it with the tip of the launcher, set the angle so the yellow line is facing away from energy_ball_launcher, set the Ball count to 1 and go onto the Flags tab and uncheck Start Disabled.

One thing to note is I haven't really pieced together a good method of the ball colliding with the launcher, even after decompiling a Valve map and using their method but it didn't work so if anyone can put forward a solution for that I would be grateful. Now we work on the very complex ball_catcher.

1. Place a prop_dynamic entity (Shift + E), set it to "models/props/combine_ball_catcher.mdl", name it ball_catch, Apply and close.

2. Create a cylinder using the trigger texture that engulfs the catcher, tie this to an entity (Ctrl + T) and set it to trigger_multiple. Name it ball_trap, go onto the Flags tab and uncheck Clients, check Physics Objects and set the following on the Outputs tab: Screenshot don't worry about any red things for now, you will fix up all those by the end of the tutorial.

3. Heres where it gets very messy, place a prop_dynamic entity (Shift + E), name it ball_trap_ball, set the World Model to "models/effects/combineball.mdl", Start Disabled to yes and align it so it is almost hidden by the ball catcher. Apply and close.

4. Create an env_sprite entity (Shift + E), name it ball_trap_sprite_b, set the Render FX to distort, set the Render Mode to "World Space Glow", Sprite Name "materials/sprites/glow01.vmt", scale 2, Framerate 30. Apply, *breathe* and close.

5. Create another env_sprite entity (Shift + E), name it ball_trap_sprite_b, set the Render FX to distort, set the Render Mode to "Additive", Sprite Name "materials/sprites/physring1.vmt", scale 1.5, Framerate 30. Apply, *breathe* and close. Place these env_sprites close to each other and near the ball_trap_ball.

6. Create 2 logic_relays, the first of which you will name relay_ball_trap_reset. Set the outputs as following. Name the second relay_ball_trap_setup, set the outputs as following.

7. The final part is a func_tracktrain accompanied by 2 path_track's, create a nodraw brush, tie it to a func_tracktrain entity (Ctrl + T) and name it ball_trap_door. First Stop Target is going to be "path_ball_trap_01", Move Sound "d3_citadel.podarm_move", Start Sound "d3_citadel.podarm_move_start", Stop Sound "d3_citadel.podarm_move_stop".

8. Now create 2 path_tracks, name the first one "path_ball_trap_01", Next Stop Target "path_ball_trap_02", move the second one inside the top part that sticks out of the catcher (will add a picture of this later), name it "path_ball_trap_02", Next Stop Target "path_ball_trap_01". Setup the following output for both as:
My Output: OnPass
Target Entity: ball_trap_door
Target Input: SetSpeed
Parameter Override: 0

That should be all done, if theres anything missing please do tell me and I'll fix it up.

Making Indicator Strips - Written by Youme

1. Make your switch

2. Place several brushes sunk into your wall/floor/ceiling and texture them with "signage/indicator_lights/indicator_lights_wall" (replace wall with floor for floor ones) you may want to put "indicator_lights_corner_wall" in the corners like the official maps

3. select all the brushes with that texture

4. convert them to a func_brush and call them "indicator_strip_1", set the solidarity to never solid

5. create an env_texturetoggle entity, call it "strip_1_toggler" and set its target to "indicator_strip_1"

6. select the button's trigger and add this output:
My output: OnTrigger
Target Entity: strip_1_toggler
Target Input: IncrementTextureIndex

Thats it. (this also works for the "sinage_doorstate" texture aswell which has a cross or a tick to show if a door is open)

Fix for the textures in Hammer:

Evilreaver wrote:
I'm new to HL2 Hammer (I used HL1 Hammer a lot back in the day), and I have a problem- I followed your guide to the letter, but in hammer most of my textures are the invalid checkerboard- in game they're fine, what's the deal? Some of my textures (like nodraw and the no-portal metal) work fine.

EDIT: I found this fix: http://www.biohazard15.com/forum/index.php?topic=21.0

OR

Thunder79 wrote:

Making Indicator Strips:

Youme wrote:
Making Indicator Strips

Thunder79 wrote:
you might want to give this a try...custom vmt's that make most of the pink and black checkerboard pattern disappear. Works great and makes it a lot easier to map.

dload.php?action=file&file_id=4

edit: oh you mentioned the material rar...perhaps you had already found it...oh well...I'm sure someone here will find it useful.

- Make your switch
- Place several brushes sunk into your wall/floor/ceiling and texture them with "signage/indicator_lights/indicator_lights_wall" (replace wall with floor for floor ones) you may want to put "indicator_lights_corner_wall" in the corners like the official maps
- select all the brushes with that texture
- convert them to a func_wall and call them "indicator_strip_1"
- create an env_texturetoggle entity, call it "strip_1_toggler" and set its target to "indicator_strip_1"
- select the button's trigger and add this output:
My output: OnTrigger
Target Entity: strip_1_toggler
Target Input: IncrementTextureIndex

Making a box dropper:

Youme wrote:
Making a box dropper

-create a prop_static with the model "models/props/box_dropper.mdl" and place it somewhere sensible like the ceiling

-createa prop_dynamic with the model "models/props/box_dropper_cover.mdl", set its name to "dropper_lid_1" and align it with the bottom of the prop_static

-about 300 units above that create a prop_physics, set its model to "models/props/metal_box.mdl", name to "box" and check the "generate output on +USE" flag (if you want the compainion cube set its skin to 1)

- near that create a logic_relay with this output
My Output: OnSpawn
Target Entity: box
Target Input: kill

- near the box again, create an env_entity_maker and call it "box_maker". Set the point_template to spawn to "box_template". In flags, check the first three and uncheck the last two (Enable auto spawn - on, wait for destruction - on and even if player is looking - on). Give it these outputs:

My Output: OnEntitySpawned
Target Entity: dropper_lid_1
Target Input: SetAnimation
Parameter: open
Delay: 3.00
and
My Output: OnEntitySpawned
Target Entity: dropper_lid_1
Target Input: SetAnimation
Parameter: close
Delay: 4.50

- finaly make a point_template and call it "box_template" set its template 1 to "box"

make sure you have trigger_remove's (uncheck the clients flag and check the physics objects one) at the bottom of all your water areas so if you drop a cube in the water it kills it and respawns another one
Also make sure you check the 'Everything' flag on any trigger_portal_cleansers so they remove the cube aswell.

Toxic Water:

Youme wrote:
Toxic water

Goo:

-make a brush/brushes as deep as you want your water to be

-select them all and tie them to a func_water_analog entity

-set the speed to something like 30 and direction to anything

-make all the surfaces tools/nodraw and the top nature/hazard_liquid

Mist on top:

-create an point entity in the middle of your water and set its class name to info_particle_system

-give it the following keyvalues:

Targetname - green_mist_1
start_active - 1
effect_name - water_mist_1024_512
angles - 0 0 0
hammerid - 000002 - random number

Making it kill you:

-make a trigger brush that is the same size and shape as your water, possibly a few units shorter so it starts underneath the water

-tie all of them to a trigger_hurt entity and adjust the following keyvalues

damage - 100
damage cap - 100
damage type - CHEMICAL

Removing boxes that get submerged (so your box dropper can respawn it):

-create yet another trigger brush/es in the shape of the water, this time only have them right at the bottom of the water

-tie them all to a trigger_remove entity and in flags uncheck clients (VERY IMPORTANT it will crash if you don't) and check physics objects

Detatchable security cameras:

Youme wrote:
Detatchable security cameras

-Create an npc_security_camera and position it against the wall/ceiling and angle it how you want. call it "cam_01"

-create a 1x5x5 block thick trigger brush against the wall, around the bit that attaches the camera to the wall

-tie the trigger brush to a func_portal_detector and add the following output:

My Output: OnStartTouchLinkedPortal
Target Entity: cam_1
Target Input: ragdoll

Adding a Radio (with sound):

1. Insert a prop_dynamic and make the model "models/props/radio_reference.mdl".
2. Name the prop_dynamic "radio"
2. Insert a ambient_generic near the radio and make the sourceentityname "radio"
3. Set Sound name to "ambient/music/looping_radio_mix.wav"

Portal Prefab Pack:

Youme wrote:
Portal Prefab Pack

Download : http://www.marmalade-people.co.uk/stuff ... 20pack.zip

extract and copy the files to

C:Program FilesSteamSteamApps*Username*sourcesdkbinprefabs

Includes:
-Ball catcher
-Ball launcher
-button and door (includes switching indicator textures)
-portal cleanser + effect
-small observation room
-medium observation room
-large observation room

Fading and ending a map with text:

Youme wrote:
Thanks, its an env_fade entity followed by a point_clientcommand

i put a trigger in the elevator and made it so it fired the fade and once it had finished fading i fired the point_clientcommand with an overide of disconnect

Loading a Custom map:

Youme wrote:
copy and paste the map (.bsp file) into the portal maps folder -

C:Program FilesSteamSteamApps*username*portalportalmaps

then load up portal

turn the console on, controls>advaced>enable developer console

open the console (` key next to 1)

then type "map mapname" (minus "marks")

Materials:

Tiki wrote:
Modular
Modular textures are the bulk textures that appear within the test levels of the game. These textures include the square/rectangle patterned textures.
Filters:
modular
concrete modular
metal modular

Behind the Scenes
Bts textures are those present in the later levels of Portal post-escape. Most textures in this category are metal and separating these textures can be difficult without knowing the exact texture name.
Filter:
bts

Grates
Grates are present in many places in Portal, from separating rooms while still being able to portal through them, to blocking the user from getting underneath pistons. Textures used in Portal are:
metalgrate011a
metalgrate018
metalgrate018b
metalgrate_bts_001a

Gradients
Gradients are used to create the illusion of endless tunnels.
Example: The top of box-dropping tubes uses a gradient to red. (metalwall_bts_006b_gradient)
Example 2: The light source for observation rooms is a large tube in the ceiling which supposedly goes to the surface. Thus the blinding light effect.
Filter:
gradient
plastic

Plastics
Plastic textures are used to do two things.
1. Create the tunnel lights in observation rooms.
2. Create the borders which surround glass.
Filter:
plastic

Glass
There are two types of glass used in Portal.
1. Frosted Glass
2. Refracted Glass
*The correct glass to mimic the observation glass is (on my screen) currently displayed as purple/black checkerboard in the texture browser. The correct texture name is "glasswindow_refract01." Though it shows up purple/black checkered in the editor, it will show up correctly in-game.
Filter:
frost
refrac

Were not to allow Portals:

DrStalker wrote:
Don't let portals be placed underwater, or even partially submerged. This will intermittently cause the entire map to fill with the underwater effect, and may cause undesirable behavior when moving through the portals.

Don't let portals get too close to displacements. You can use displacements in your map, but if a portal is too close to the surface the player will fall through the displacement and get stuck.

Don't let portals appear where there is no exit room. (eg: a 128x128 space that is 32 units high can have a portal on the roof, but the player will get teleported nearby and/or hurt when they move through it.

Workflow tip: Portal, visgroups and you:

DrStalker wrote:
Sick of seeing everything covered in a flickering purple texture from all the func_noportal_volume brushes? I know I am.

Assign all your func_noportal_volume brushes to a visgroup in Hammer (select them, click hide on the toolbar, and make a new visgroup or add to an existing one)

Now you can toggle them all on/off with the visgroup controls on the right side of Hammer, letting you work without dealing with them.

As an added bonus, you can compile your map without any func_noportal_volume brushes for testing (hidden visgroups do not get compiled in). This makes it a lot easier to move around, since you can stick portals anywhere you like.

I've also found it useful to create a visgroup called "developer cheats" that adds some bridges, ramps and extra boxes right next to where they are needed. It makes testing a lot easier if you can just pick up a box and put it on a button, instead of flinging yourself up to get it in a move you've already tested, tweaked and finalized.

Making a trigger only respond to a certain thing:

Youme wrote:
Making a trigger only respond to a certain thing

I am going to use a Weighted Companion cube ('cos we all love 'em)

-Set up your button with a trigger to perform all th desired outcomes

-(optional) leave that trigger as it is so you can press the button by standing on it and copy/paste this trigger to the same place and make it slightly smaller

-Set the flags of this new trigger to "pushables", "physics objects" and everything, but not "clients"

-Set the Filter Name to "WCC_filter"

-Create a filter_activator_name entity and put it near the button

-Call it "WCC_filter" (note, same as the Filter Name in the trigger)

-Set its Filter Name to "WCC"

-find or place your Companion Cube prop and call it "WCC"

-(optional) If you are using a point_template to spawn the desired object you need to check the "Preserve entity names" flag on your point_template

Enjoy playing with your new button that only accepts WCCs and not WSCs/radios/chairs/pumkins....etc

Two buttons to open a door:

Interitus wrote:
Two buttons to open a door

1. Make your two buttons.

2. Make the door (ExcessNeo wrote an excellent tutorial on this in his button + 2 sliding door tutorial, so I'm not typing it all out)

3. Create a logic_compare entity by your door. Name it door1_logic. I set the CompareValue to "4" just in case it tries comparing it at 0 before I want to, probably not needed.

4. Add these outputs in the output tab:
My output named: OnEqualTo
Targets entity named: door1_left (or whatever you have named your left door)
Via this output: Open

My output named: OnEqualTo
Targets entity named: door1_right
Via this output: Open

My output named: OnNotEqualTo
Targets entity named: door1_left
Via this output: Close

My output named: OnNotEqualTo
Targets entity named: door1_right
Via this output: Close

Apply and close.

5. Goto Button1 and add these to the ouputs:

My output named: OnStartTouch
Targets entity named: door1_logic
Via this output: SetValueCompare
Parameter override: 1

My output named: OnEndTouch
Targets entity named: door1_logic
Via this output: SetValueCompare
Parameter override: 0

Apply and close.

6. Goto Button2 and add these to the outputs:

My output named: OnStartTouch
Targets entity named: door1_logic
Via this output: SetCompareValue
Parameter override: 1

My output named: OnEndTouch
Targets entity named: door1_logic
Via this output: Compare
Delay: 0.1

Apply and close.

Adding the fire from the final map of portal:

Youme wrote:
the fire (from the final map), DaBOOm is an info_particle_system entity (its not in the list, just make anyother type of entity then change its class name to that)
give it the following keyvalues

start active: 1
effect_name: "fire_large_02"
angles: 0 0 0 (rotate accodingly)
hammerid: 12346 (random 6 digit number)

Making fire hurt players:

1. Create a new brush with the trigger texture, covering the area of the fire.
2. With the brush highlihgted press ctrl+t (Tie to Entity)
3. Make it a trigger_hurt
4. Set the damage to 2000

Portal Cleanser:

ebola wrote:
Portal Cleanser
Follow these steps:

1. Make a brush that looks like your cleanser field, basically 1 block thick

2. Give it a trigger texture

3. Press Ctrl+T and make it a trigger_portal_cleanser

4. Flag Clients and Everything

5. create an entity in the dead center of the cleanser field

6. Give it a class name of info_particle_system (its not in the fgd)

7. Give it the following keyvalues:

start_active "1"
effect_name "portal_cleanser"
angles 0 0 0
hammerid "000001" <--this can be a random number

8. Make sure the angle of the entity is parallel with the cleanser field.

9. Create 2 prop_dynamic and use World Model models/props/portal_cleanser_1.mdl

10. Place the models in corresponding positions

Portal Style lighting: An Incomplete Guide:

DrStalker wrote:
Portal Style lighting: An Incomplete Guide.

Setting the Ambient Levels

Create a env_tonemap_controller. It will look like a black/purple checkerboard in Hammer; that's fine.

Create a logic_auto, because env_tonemap_controller has no parameters so needs to be configured with I/O. Configure the logic_auto to setup the lighting when the map starts:

SetAutoExposureMin 0.75
SetAutoExposureMax 1.5
SetBloomScale 0.3

If you do a fancy fade-in or some such you can play around; have a look at how the very first level handles the fade-in from black for an example. (it also used a env_fade as well as tonemap changes to simulate opening closed eyes)

Note: BTS levels may use different values. Values can be changed mid-level if
desired (for example, moving from outside to indoors in a map would probably be an appropriate place to change this sort of thing) but that's something best researched under general HDR information.

Buttons, Catchers, Launchers and so-on

Many of these objects have lights embedded in them. Have a look at an official map to see, and copy what they do. You may need to set some models to not cause shadows to make this work nicely.

Observation rooms

Observation rooms typically include lights to brighting them up and a large spotlight to illuminate the room. Again, look at an official map but be aware you will probably need to adjust the spotlight (direction, angles and power) to look right in your map.

Light Colour

Some places use pure white, some use 183,204,218. The later has a slight bluish cast.

Random sourceless light sources
Sometimes a low powered 183,204,218 light is used to make something a little brighter; I've seen there places above platforms that otherwise might not be as bright as desired.

Vents, infinite tunnels, etc

These use an orange coloured spotlight to illuminate things, although this is optional; not every vent/tunnel gives off light.

Edge Lights

Recessed strips of light at the edge of the floor.
Either these can't be done at the moment or I'm doing it wrong. A 4 wide/16 deep hole is made, with a light_recessedcool texture on the bottom. (or a name something like that)
As far as I can tell these textures do NOT act as lights, but instead the illusion they do is created with an overlay on the wall. Both the light texture and the overlay texture are supposed to be self-illuminating, except that doesn't seem to work for me, and they only react to ambient light. The result is a thin dark pit with a blurred smear on the wall.

If someone who has gotten light-emitting textures to work could explain how it would be great; I'll try to play around on the weekend but currently it is my feeling that any time you see a texture that lights up nearby brushes it's all done with clever use of overlay textures and gradient textures. (or there is an actual light object, but that's very easy to spot in the editor)

Cube Maps

Mine won't build, and attempting to do so causes lockups and problems. (there is a vtex dll error, then complete loss of ability to turn)

I suspect this can be worked around by copying all portal textures to a different game (eg: counterstrike) loading the map and building the cube-maps there.

Has anyone gotten cubemap building to work?

Recommened way of posting maps:

Interitus wrote:
Posting or linking to maps

1. Zip map with any required files, and a readme.

2. Upload to a file server.

3. Upload screenshots to a website you can hotlink from

4. Post link to file on forum, including thumbnails of the screenshots, with links to fullsize.

Making Textures emit light:

Yffulf wrote:
The texture is "lights/light_recessedcool002" and for it to actually emit lights, make sure you open up portal contents.gcf take out their lights.rad and put it in your portal folder (or the mod you made to map for portal)'s main folder. :) Otherwise they will just be a texture, nothing special.

If you know of anymore guides PM or Post it and i'll add it to the list.

"Theirs no point crying over every mistake, You just keep on trying til you run out of Cake!"

Sweet man! This would be a great addition to the Wiki. and if it was on there, more useful. Some of the stuff may have been covered already, (Really didnt read through everything) but if anything is missing im sure this could fill in the blanks. :)

The mega-topic was(is) one of the best reasons to go to portal-mods; its good to see multiple such topics across the portal-related forums. That one has helped me a lot already. I wouldnt count them out yet though (referring to the spammage reference) since any collection of guys dedicated enough to collect such a reference will eventually work their way past such website issues (leaving them and this place as the two best resources for portal mods, portal-specific tutorials, forum help, etc). Most of the rest of the portal sites are looking more. . .weak. . .every time I visit them, IMO.

Very true this is why I like thinking with portals

"Theirs no point crying over every mistake, You just keep on trying til you run out of Cake!"

Wikifying this would be a boon to the community.

"Games are made out of smaller games ? turtles all the way down, until you hit the game that is so trivial and stupid it isn?t deserving of the name." --Raph Koster

The Hammer guide is already basically on the Wiki, and has been posted here a few times already each with a different method.

As for the other tutorials... Some of them aren't that great, but if you can get them working, then post a Wiki tutorial and make an example map for download.

EDIT Also, it looks like you copied and pasted this straight from portal-mods.com, without fixing the hotlink downloads to the now-nonexistant Portal FGD and other files here. :thumbup:

[Important Threads] Forum Rules | Welcome to the new Thinking With Portals
Please do not Private Message me for assistance. Post a thread if you have questions or concerns.
If you need to contact the staff privately, contact the Global Moderators via Discord.

True I forgot about the links, I didn't know that you could post Wiki tutorials yourself I thought a Mod or Admin had to post it. I will try and adsd them to the wiki asap then and add more as i come up with them

"Theirs no point crying over every mistake, You just keep on trying til you run out of Cake!"

Can I make a request for a tutorial regarding the glass tubes that the cubes fly through, and also getting the player to fly through them?

Nope, the Wiki is open to all registrations, though Hober and f0rkz go over most things with a fine tooth comb in case there are errors/typos/whatever.

If you do add these to the Wiki (and that really would be kick ass if you did), PLEASE don't just copy and paste what you have here. This stuff is good, but it needs to be rewritten for a proper tutorial format.

[Important Threads] Forum Rules | Welcome to the new Thinking With Portals
Please do not Private Message me for assistance. Post a thread if you have questions or concerns.
If you need to contact the staff privately, contact the Global Moderators via Discord.
Leck wrote:
Can I make a request for a tutorial regarding the glass tubes that the cubes fly through, and also getting the player to fly through them?

I will look into it ASAP and add as quick as posible

"Theirs no point crying over every mistake, You just keep on trying til you run out of Cake!"
Page 1 of 2Next