Comments

Commented 13 hours ago2024-03-28 09:56:50 UTC in wiki page: momentary_rot_button Comment #106092
Findings:
  • Door hack flag makes the entity un-use-able but solid (default is useable but not solid)
  • Not useable flag has no effect [not implemented?]
  • [bug] the entity only works well with positive distance (clockwise opening). Negative distance makes the internal value "start open". The linked momentary_door will always be opening when the momentary_rot_button moves clockwise and vice versa.
    • solution: have all linked momentary_rot_buttons have positive distance, and rotate the entity's yaw 180 degrees to make it spin counterclockwise (and now lighting needs to be taken to consideration)
  • [bug] [Related with negative distance also,] if there are 2 or more linked momentary_rot_buttons and the other has different signed distance then the other button will keep spinning past the end (and the internal ratio value would go past the 0 ≥ x ≥ 1 range)
    • solution: same as above
  • If 2 or more linked momentary_rot_buttons have different distance/speed the one being USEd will dictate the speed and distance of the others. Then when it reaches the full distance all the others will snap to their fully opened/closed positions.
  • As per RUST: Creating Proximity Doors triggering the momentary_rot_button every 0.1s does move it at the prescribed speed, but if "auto return" is not set it'd just continually ping-pong between opening and closing.
Commented 2 days ago2024-03-26 01:06:50 UTC in wiki page: activator Comment #106087
In vanilla SDK, there is no way for any entity to specify the activator in the target field. However in SoHL and clones (e.g. Sven Coop and Featureful) the special name
!activator
can be used for this.
Commented 2 weeks ago2024-03-11 06:35:21 UTC in vault item: Bored Comment #106059
I found a server that has cardboard maps, just not this exact map. High probability it's using textures from this map. Very cool concept overall. I just wish more servers host cool maps.
Commented 2 weeks ago2024-03-11 06:29:57 UTC in vault item: DM_WEEDFORT Comment #106058
If somebody's hosting this make sure to replace HEV charging sounds with bong bubbling sounds!
Commented 2 weeks ago2024-03-10 16:35:32 UTC in wiki page: target_cdaudio Comment #106056
Fun fact: Track 1 is unassigned because on the original HL CD track 1 is the data part of the CD. Track 1 is Half-Life.
Commented 3 weeks ago2024-03-06 03:37:03 UTC in wiki page: Tools and Resources Comment #106037
I edited in the note panel on Wally, after seeing one too many cries for help on textures being wrong in game due to the use of Wally. I hope it's not too patronizing.
Commented 3 weeks ago2024-03-02 08:22:42 UTC in wiki page: Vlatitude: Multi_manager Tutorial Comment #106023

Addendum

To trigger the same target multiple times, subsequent keys should be suffixed with #N where N is a number. This is simply because key names need to be unique to be exported to .map properly. The game code drops the suffixes when reading the entity keyvalues.
Example:
Key Value
boop 0.01
boop#1 0.5
boop#2 0.9
boop#3 1.2
boop#4 1.4
boop#5 1.5
All of these target boop.
Commented 3 weeks ago2024-02-29 23:52:12 UTC in wiki page: Tutorial: Making textures with WadMaker Comment #106022
By setting your canvas to multiples of 16 when you start.
If you're already past that then resize to multiples of 16.
Protip: use a calculator. ;)
Commented 4 weeks ago2024-02-29 00:09:02 UTC in wiki page: path_corner Comment #106019
Fun fact: the logic of picking movement waypoints of a func_train is entirely within func_train itself. It is therefore possible to make a valid path with other entities mixed in. I've successfully mixed path_corners with momentary_doors like this:
  1. path_corner (p1)
    • target = m1
    • wait = 0
    • spawnflags = Teleport (2)
  2. momentary_door (m1)
    • target = p2
    • wait = 0
  3. path_corner (p2)
    • target = m2
    • wait = 0
    • spawnflags = Teleport (2)
  4. momentary_door (m2)
    • target = p1
    • wait = 0
I can then use momentary_rot_button to move the momentary_doors around and vary the distance the func_train has to travel.

It is a setup for an experiment where I can vary the time a func_train spends on one part of the map vs the other because it's being used to occlude LOS between me and a monster to test its AI schedule but that's off topic.

But you can likewise use it to have dynamically timed sequence with the mom_doors and func_trains off the playable areas.
My theory is that func_trains check the keyvalues of the entities it uses as paths (usually path_corners) without checking that their classname is actually path_corner. You can therefore use any entity as long as it has keyvalues that concur with that of path_corners: a target, optionally a wait, message (fire on pass) or speed, and spawnflags that don't conflict with that of a path_corner (therefore flag 1 will stop the func_train, flag 2 will teleport, etc.)
Commented 1 month ago2024-02-24 14:04:39 UTC in journal: Map2Prop supports MAP format now, what's next? Comment #106009
Suggestions (might be a repeat from the vault):
  1. A way to place/reuse the model multiple places in the map. Maybe a point entity that targets the main func_ entity, inheriting the func_'s convert_to.
    • Technically you can do this with MESS that runs after map2prop, but why use 2 tools when 1 tool do job.
    • Using brush entities that inherit others is actually mighty useful actually, to get the right sizing and positioning in the map. Maybe something like zhlt_usemodel approach is more ideal. Maybe do both.
  2. More bones 🦴, a way to assign different parts of meshes to different bones, and a way to set bone hierarchy (easy enough using target keyvalue)
  3. A way to create separate meshes (i.e. separate bodygroup parts) that is later combined into a single model. Probably separate entities that has a shared keyvalue (like MESS). Probably needs a way to set the main entity from the group too (also like MESS).
Commented 1 month ago2024-02-23 10:56:45 UTC in wiki page: game_text Comment #106006
There should be more information about character sets: what the game supports, how to get the best results on displaying most languages in whatever charset env is necessary (like VNs requiring shift-jis system charset).
Decided to test for myself.

Vanilla Half-Life's text engine seem to be broken for anything that's not ASCII. It consumes single-byte character sets (presumably ANSI/Windows-1252/system locale) but the text rendering is consuming UTF-8. This results in the broken text consistent with the table in this page: https://www.i18nqa.com/debug/utf8-debug.html

Haven't looked at the other SDKs or engines (candidates include Updated/Unified/Featureful/Xash-fwgs/Pathos) on how they handle text. Hopefully better than the unrecoverable mess vanilla is in right now.

ALSO, JACK will purposefully mangle non-ASCII texts. You'd need to edit the .map directly and feed it to the compilers yourself.
Commented 1 month ago2024-02-20 13:55:04 UTC in wiki page: Tutorial: The Complete Guide to Lighting Comment #105993
Back from AFK, got HL and JACK back and working again.

I tested light_surface and it works exactly as I expected, proving the description is indeed incorrect. I will pass my test map to you for you to incorporate into this page. (tip: gl_wireframe 1 would be useful when taking screenshots for this map)
Edit 2024-03-17
No correction on the above has been made yet. As of now the information on light_surface page is updated and correct, yet this page is still repeating the outdated and incorrect information.
Commented 1 month ago2024-02-16 12:54:53 UTC in wiki page: Tutorial: The Complete Guide to Lighting Comment #105985
Can you test the difference between light_surface's Filter max range [_frange] and Filter max dist to plane [_fdist]? I know what the words mean, but the description seem to contradict my understanding of the meaning of planes and how they work.

I have a few test case ideas:
  1. A wall of tiling 16x16 brushes textured with a texlight.
    • _frange should make only a disk of those brushes around the light_surface emit light.
    • _fdist, if my interpretation of plane is correct, should light up all of them since the normal distance of all the faces to the plane is identical even if they're infinitely far away. That's the nature of planes.
  2. Similar setup to the above but the next row above recedes 16u behind the previous row, producing a staircase. Place light_surface in the middle of this flight of stairs.
    • _frange should produce a sphere of lit up faces.
    • _fdist, if my interpretation of plane is correct, should have all faces on the same row light up until a certain distance away from the entity because again, all of them should have same normal distance to the plane.
Unfortunately I can't do these tests myself right now as my drive did a resonance cascade and I'll be afk for a couple of days.
Commented 1 month ago2024-02-16 08:28:49 UTC in vault item: A WAD of 897 Solid Colors Comment #105983
You could probably fit all 1100 colours if you use just the hex values for names e.g. COLOR<RRGGBB>. Has the unintended side effect of the alphabetical sort being quite logical too as it sorts by hex values.

...maybe I should attempt this myself.
Commented 1 month ago2024-02-15 14:37:55 UTC in wiki page: monster_human_grunt Comment #105982
^ Spawn one with a shotgun. HECU shotgunners always wear balaclavas.
Commented 1 month ago2024-01-31 23:32:38 UTC in vault item: Steamboat Willie oriented sprite Comment #105945
Rimrook's weedfort seem to have used this one I gave him, so you might want to download this to play the map.
Commented 1 month ago2024-01-31 13:38:37 UTC in vault item: Scissorlift Prefabs | Static and functional | 6 texture variants | MESS support | v1.2 Comment #105944
^ Ayy, thanks! 😁

Also, version 1.2 just dropped. This adds support for extended static lifts, and functional lifts that start already extended.
I highly recommend updating your local copy to this version.
Commented 2 months ago2024-01-28 05:39:48 UTC in vault item: Scissorlift Prefabs | Static and functional | 6 texture variants | MESS support | v1.2 Comment #105938
It's a known issue. Please read Important Information #2.

I might have to take a look at the template and do the fix again.
Commented 2 months ago2024-01-27 23:22:14 UTC in vault item: Scissorlift Prefabs | Static and functional | 6 texture variants | MESS support | v1.2 Comment #105936
By popular demand, sample BSP included.
Commented 2 months ago2024-01-20 09:05:40 UTC in wiki page: VERC: Chairs, Scientists and Barneys Comment #105906
The sit1 animation in barney.mdl is one of the special ones which contain sequence event ID 1003s. These will try to trigger entities in your maps, and this could be unintentional. It's important to check with Half-Life Asset Manager (modern, feature-rich descendent of HLMV. Use it instead of HLMV) for these events in the animation you want to use. If such events exist, then you can either:
  1. Take advantage of it by naming entities you want to get triggered as part of the choreography, just like introchair, or
  2. Avoid naming any entity in the map with the options value of the event[s]
Commented 2 months ago2024-01-17 02:08:35 UTC in wiki page: monster_bullchicken Comment #105884
The cooldown between spits is apparently reset when it loses sight of you, so you can cheese the bullsquid to turbo-spit you by timing the LOS between you and the bullsquid; immediately block LOS on or after the frame where the projectile spawns, then immediately unblock LOS the next frame (maybe even the same frame)
Commented 2 months ago2024-01-13 00:20:03 UTC in wiki page: VERC: Doors With Glass Comment #105869
I discovered a trick with using User posted image BOUNDINGBOX brush which eliminates the lip math. You make it the same width as the main door and tie it to the glass part. No messing with lip value for the glass door; use the same value as the main door.
Commented 2 months ago2024-01-12 09:11:27 UTC in vault item: Interactive_Vehicle_Frmk Comment #105858
Thank you Lei Shi, very cool.
Commented 2 months ago2024-01-09 22:56:28 UTC in wiki page: Tutorial: Compiler charts and limits Comment #105855
I wrote a short journal entry on how all 15 lumps relate to each other. I used the relational model to visualize it.

Because the referencing of entries by other entries is done with indices into the lump using mostly 16-bit shorts, it places a hard limit on how many of the target lump's entries can exist before their indices becomes out of bounds for the data types used. In addition, Carmack makes a few of these data types do double (sometimes triple) duty e.g. positive values refer to one type, negative values means entirely different type, and 0 means null, so that halves the capacity of a type's max index. clipnodes suffer the most from this; an entire half (the negative half) of addressable values in 2^16 is used to assign only 2 significant values -1 and -2.

I've incorporated the information into the first section of this page. You can read the table as:
The resource A has a limit of X because it is referenced by JKL with data type T, using [Remark]
The resource clipnodes has a limit of 32768 because it is referenced by other clipnodes with data type short, using positive values > 0
Commented 2 months ago2024-01-09 13:16:25 UTC in wiki page: VERC: MAP File Format Specification Comment #105854
Additional context:
  • This version of the map format is colloquially known as Valve20 to differentiate from the original Quake version
  • Valve20 is now the de-facto map format all Quake-based and Quake-derived editors and compilers support due to the precision in texture alignment
  • TrenchBroom uses the OS's clipboard for copy and paste (not the case with JACK/VHE3.x) and uses the map format to represent brush & entity data to be pasted. It also means clipboard-based IPC can be done using the map format.
Commented 2 months ago2024-01-06 06:19:43 UTC in wiki page: func_detail Comment #105850
What I can gather from the community's collective wisdom:
  • func_detail does not reduce world leaves
  • func_detail instead reduce VIS portals generated by HLBSP. if without it HLBSP makes VIS portals around detail geometry, with it it just treat the surrounding area as a single VIS leaf
  • func_detail is gone at the end of HLBSP, and is world geometry after that point
  • hence HLRAD cannot treat it in any way other than opaque world brush because it's gone by the time it's run
Commented 2 months ago2024-01-05 12:12:36 UTC in wiki page: func_tracktrain Comment #105848
Some findings about func_tracktrain:
  • wheels distance is only measured forward from origin. To make the train travel as much on the path as possible, the origin needs to be located at the center of the back axle.
  • wheel distance defaults to 100.
  • target of a path_track is fired when the origin passes the path_track.
  • the position and angle is set wrt the origin point as follows:
    1. trace a line forward.
    2. if there's enough distance to the end of the current path, keep heading
    3. if wheel distance > distance to next path, subtract current distance to next path, then iterate the path forwards until the distance fits the path. the point where distance is 0 is the new heading.
    4. origin moves forward
    5. angle is adjusted to point to the heading. this will in all cases be shorter than wheel distance; the sharper the curve the more noticeable. this also means the front wheel part will always overshoot the path. but the origin is guaranteed to always be on the path.
Commented 2 months ago2024-01-02 15:54:34 UTC in vault item: Cliffs and Caves Update! - The Rimpository v1.05 Comment #105830
It'd be pretty cool to use the visgroups to assign attribution e.g. all of sir's prefabs is assigned a visgroup to his name. This is to comply with the "BY" aspect of the CC license.
Commented 2 months ago2024-01-01 07:44:43 UTC in wiki page: Tutorial: Editing Compiled BSPs With newbspguy: The Basics Comment #105827
@karaulov
textures can be scaled as need because now lightmap can be recalculated after any changes.
You still need to be careful because the maximum lightmap size for a face is apparently 16x16 luxels. A lot of faces you'll find in maps are already at 16 luxels on either (or both) sides. GoldSrc doesn't support lightmaps larger than that size, and scaling down a texture that results in a face with lightmaps over that size crashes the engine. (IDK if it's supported on svengine). Hence my verdict is don't do it.

As for vertex editing, I just don't recommend it at all too. It's way more cumbersome, and way way harder to get satisfactory result than to get completely broken result. I honestly don't know how a face whose vertices are non-planar would act inside the game. If there's face splitting ability in world faces and easier vertex shifting via handles vs textboxes then it might be feasible, but still not recommended because of the non-planar thing. *

The main takeaway is that just because it's doable with the BSP structure doesn't mean the game engine that's going to parse and run the BSP would like it. If the game engine doesn't like it, don't do it.
I still don't have any draft for a part 2 of this tutorial. 😅
EDIT 1:
* Tested face vertex editing. It messes up lightmaps elsewhere on a map.
Commented 2 months ago2023-12-31 19:52:10 UTC in wiki page: Tutorial: Models and lighting Comment #105822
From reading the code it seems that sv_skyvector_* and sv_skycolor_* are the culprits of models forcibly taking the sky's color, because from looking at texlight data itself there's nothing to discern sky light from normal light. The engine probably trace a vector set in sv_skyvector_* from the origin (feet) and if it hits the sky texture, overrides the model's lighting with the sv_skycolor_*.

sv_skycolor_* is read from the brightness value of light_environment at map load, and sv_skyvector_* from the entity's angle also at map load.
Commented 2 months ago2023-12-30 18:39:37 UTC in wiki page: scripted_sequence Comment #105814
The behaviour of this entity is so complex it might need a flow chart
Commented 3 months ago2023-12-26 11:18:40 UTC in journal: A new home Comment #105794
My ancient-ass mind when I heard anything about Malta
Anyway, best of luck out there. Keep an eye out for the memelord himself, grandayy.
Commented 3 months ago2023-12-24 00:46:29 UTC in wiki page: trigger_gravity Comment #105782
That cliphull# trick is neat, and i think should apply just as well to all brush triggers.
Commented 3 months ago2023-12-22 10:54:47 UTC in wiki page: Entity Attribute: Custom Appearance Comment #105779
Trivia: It's preset 10 (flourescent flicker) that made the news about how the lighting presets survived all the way from Quake to Half-Life Alyx unchanged.
Commented 3 months ago2023-12-21 23:19:38 UTC in vault item: Bloody Christmas Comment #105776
Merry Bloody Christmas!

P.S. it was a 4 but 1 star had to be docked because I can't eat the cookies 🚫🍪😭
Commented 3 months ago2023-12-18 21:37:16 UTC in wiki page: Tutorial: Editing Compiled BSPs With newbspguy: The Basics Comment #105764
^ Thanks for the plentiful added features! 😁

This tutorial definitely needs a part 2 for the more advanced tasks e.g. vertex manipulation, bsp import/export, lightmap editing.
Commented 3 months ago2023-12-18 20:07:21 UTC in journal: Goldsrc BSP relational model Comment #105762
^ Thanks for the links! 😃
Commented 3 months ago2023-12-16 12:33:41 UTC in wiki page: Tutorial: Hint Brushes Comment #105743
Relaying other member's comment on this page: a top-down view of the setup was sorely needed. In that aspect the Tutorial: Total Map Optimisation Part 2 (VIS, Hints) page is much more helpful (and much more thorough tbh).
Commented 3 months ago2023-12-16 12:02:30 UTC in wiki page: SKY texture Comment #105742
I found that compiling with VHLT will make sky lighting not work on sky brushes that aren't all textured with sky texture, making that particular brush not emit skylight.

It's also particular about having different sky "ceiling" brushes at different levels. Hard to explain why; I think it can only emit light from one side, and so having one sky brush act as both wall and ceiling of a skybox makes it only emit light on the wall side. So it might mean one sky brush emits light on only one face.
My solution was to have rooms with sky be at only one ceiling level each.
Commented 3 months ago2023-12-16 09:30:25 UTC in wiki page: Tool Textures Comment #105738
I made a version with legends and emojis. The aim is threefold:
  1. trim the wasted space the table headers are using, and give more space for the description column
  2. Immediately infer the properties with emojis without constantly having to look up the yes/no columns back to the header way up the page
  3. hopefully get this to display better on mobile
For now it's in this comment for my personal use. If feedback is favourable then we can merge this version into the main page.

Legend

Z - zhlt.wad requirements
Usually available in standard WADs for a given GoldSrc game e.g. halflife.wad
Z Usually only available in zhlt.wad
Z* Used by ZHLT but not included in zhlt.wad
Properties
🏢 Allowed as World
🚪 Allowed as Entity
Casts Shadow as world brush
🌓 Has LightMap
✂️ Cuts VisLeafs
Visibility
👀 Texture is Visible in game
🫥 Textured face is inVisible, but the rest of the brush is
Brush becomes inVisible
Clipnode generation
0️⃣ Point hull (bullets, weapons, projectiles)
1️⃣ Player hull
2️⃣ Large monsters hull
3️⃣ Crouching hull

Tool Textures

Image Name Z W E S LM VL V H0 H1 H2 H3 Description
N/A !cur_0 Z* 🏢 ✂️ 👀 Acts like CONTENTWATER and func_pushable with a speed of 2048 units/s in +X. [note1]
N/A !cur_180 Z* 🏢 ✂️ 👀 Acts like CONTENTWATER and func_pushable with a speed of 2048 units/s in -X. [note1]
N/A !cur_270 Z* 🏢 ✂️ 👀 Acts like CONTENTWATER and func_pushable with a speed of 2048 units/s in -Y. [note1]
N/A !cur_90 Z* 🏢 ✂️ 👀 Acts like CONTENTWATER and func_pushable with a speed of 2048 units/s in +Y. [note1]
N/A !cur_dwn Z* 🏢 ✂️ 👀 Acts like CONTENTWATER and func_pushable with a speed of 2048 units/s in -Z. [note1]
N/A !cur_up Z* 🏢 ✂️ 👀 Acts like CONTENTWATER and func_pushable with a speed of 2048 units/s in +Z. [note1]
User posted image
AAATRIGGER 🏢 🚪 ✂️ 🫥 0️⃣ 1️⃣ 2️⃣ 3️⃣ Used for differentiating entities in the editor, and shouldn't be used on world brushes as it may cause bugs. VHLT strips faces with this texture, making it visually identical to NULL.
User posted image
BEVEL Z 🏢 🚪 0️⃣ 2️⃣ Acts like NULL, but changes the clipnode of a brush in a way that any player approaching the brush will not be collide with the brush until their origin reaches the plane that the BEVEL face lies on. It can be used to eliminate exterior corner clipping bugs, and any remaining clipping bugs that the -cliptype precise CSG parameter may miss.
User posted image
black_HIDDEN Z 🏢 🚪 🌓 ✂️ 🫥 0️⃣ 1️⃣ 2️⃣ 3️⃣ Acts like NULL, but has a lightmap. Brushes with this texture can cast shadows.
User posted image
BOUNDINGBOX Z 🚪 Similar to ORIGIN, but used to define a bounding box for an entity. Useful if you have a lot of complex, off-grid geometry and need a bounding box which is snapped to the grid.
User posted image
CLIP 🏢 🚪 1️⃣ 2️⃣ 3️⃣ Creates clipnodes on all three cliphulls.
User posted image
CLIPBEVEL Z 🏢 🚪 0️⃣ Acts like BEVEL but for clipnodes.
User posted image
CLIPBEVELBRUSH Z 🏢 🚪 0️⃣ Acts like CLIPBEVEL, but affects every single face.
User posted image
CLIPHULL1 Z 🏢 🚪 1️⃣ Creates clipnodes on hull 1, used by standing players.
User posted image
CLIPHULL2 Z 🏢 🚪 2️⃣ Creates clipnodes on hull 2, used by large monsters (apache, gargantua, gonarch, etc).
User posted image
CLIPHULL3 Z 🏢 🚪 3️⃣ Creates clipnodes on hull 3, used by crouching players.
User posted image
CONTENTEMPTY Z 🏢 🚪 🫥 Removes collision from a brush and marks it as an empty volume.
User posted image
CONTENTWATER Z 🏢 🚪 ✂️ 🫥 0️⃣ Marks the brush as a water volume that will not render anything outside of it. It also removes collision from a brush and mirrors the faces inside out.
User posted image
HINT Z 🏢 🚪 ✂️ Faces with this texture will split visleafs, allowing you to optimize what parts of the map are visible. Other faces of the brush should be textured with SKIP.
User posted image
NOCLIP Z 🏢 🚪 ✂️ 0️⃣ Acts like NULL, but no cliphulls are generated. Similar to the zhlt_noclip keyvalue in entities.
User posted image
NULL Z 🏢 🚪 ✂️ 🫥 0️⃣ 1️⃣ 2️⃣ 3️⃣ Removes the face of a brush it's applied to, however clipnodes are still generated.
User posted image
ORIGIN 🚪 The center of brushes with this texture defines the origin point for entities.
User posted image
SKIP Z 🏢 🚪 Ignores the face of a brush it's applied to. Should not be used on world geometry except with HINT, as it may cause bugs.
User posted image
SKY 🏢 ✂️ 0️⃣ 1️⃣ 2️⃣ 3️⃣ Renders the skybox on faces with this texture, and emits light if all faces of a brush are textured with SKY and you have a light_environment or light_spot entity. Clipnode generation is optional with VHLT and can be turned off with CSG parameter -noskyclip.
User posted image
SOLIDHINT Z 🏢 🚪 ✂️ 🫥 0️⃣ 1️⃣ 2️⃣ 3️⃣ Used to eliminate unnecessary face subdivision, especially on complex shapes such as triangular terrain.
N/A SPLITFACE Z* 🏢 🚪 Brushes with this texture will subdivide faces they touch. It can be used to eliminate bad lighting caused by opaque entities.
User posted image
translucent - 🏢 🌓 ✂️ 👀 Removes clipnodes and mirrors the brush faces inside out. All @ prefixed textures exhibit this property.
Image Name Z W E S LM VL V H0 H1 H2 H3 Description
Notes:
  1. Rendered as water, and completely fullbright

Legend

Z - zhlt.wad requirements
Usually available in standard WADs for a given GoldSrc game e.g. halflife.wad
Z Usually only available in zhlt.wad
Z* Used by ZHLT but not included in zhlt.wad
Properties
🏢 Allowed as World
🚪 Allowed as Entity
Casts Shadow as world brush
🌓 Has LightMap
✂️ Cuts VisLeafs
Visibility
👀 Texture is Visible in game
🫥 Textured face is inVisible, but the rest of the brush is
Brush becomes inVisible
Clipnode generation
0️⃣ Point hull (bullets, weapons, projectiles)
1️⃣ Player hull
2️⃣ Large monsters hull
3️⃣ Crouching hull
Commented 3 months ago2023-12-07 14:41:36 UTC in wiki page: Tutorial: In the Beginning Part 5 Comment #105710
The original Part 5 of Worldcraft 2.x's tutorial covers more things than just prefabs (which aren't available in JACK, which made people skip this part and miss other basic detailing things)

For now, I'll copy-paste just this part, until there's an agreement on a more permanent inclusion of this part or the whole of WC's original tutorial series into the wiki.
Excerpt from wc.hlp
Details. These are the things that aren't necessary to the gameplay of your level, but they do help to give it a certain atmosphere, which is essential. Right now, the tutorial level is just a couple boxes separated by a tube. There really isn't anything in it to draw your attention besides a flickering light. This must change!

Once again, here is out baseline picture...
User posted image
Now, I'm thinking..."What are these rooms??" This is the main question that should help you decide what to put into a room as details. This could be some type of control room. In that case, there would be some type of computer equipment. Most places will have some type of ventilation system. Let's say this room has it exposed. Some pipes, running to...who knows where? Basically, you have free reign to add all the touches to the level that make it "yours".

Go ahead and add stuff to your tutorial level, or load up tut5.rmf in Worldcraft to see my example.
User posted image
As you can see from the above pictures, details make a big difference. Some of the things done were:
  • signs - the biohazard sign and the emergency shower sign give the area a realistic look. Half-Life's texture set includes a number of signs that can be used within your levels.
  • furniture and accessories - in the starting room, there is a swivel chair and ashtray, and a shelving unit with some random boxes on it. None of this would matter in gameplay of course, but it gives the level an interesting look.
  • exits - although they don't go anywhere, and in fact do not even open, I've inset two doors in the level to make it appear like this is actually a part of a building. It is important to make the player feel like he is not just being dropped into a box.
  • interactive objects - the medikit box on the wall can open, dispensing health. (It is actually a rotating door with its "healthvalue" key set to "15", so that when the player opens the door, 15 health points are transferred to him). The boxes on the shelves are explodable if shot.
  • shaping - the immediate tendency for most people when they start editing is to make everything square and flat. Square rooms, doors flush with walls, and things like that. It is important to get to know the three main types of brush shaping Worldcraft has to offer: Carving, Clipping, and Vertex Manipulation.
Sounds like fun...
Sound is another important aspect of a level. Up until now, the only sound you'd hear in your level is your own footsteps. Let's add some other sounds now. The computer, pipes, and flickering light are candidates for sounds.
User posted image
To give an object a sound, you need to place an ambient_generic entity near it. The only thing you'll need to do in the entity properties is specify which WAV file to play.

Evolution
Well, from the first tutorial to now, you can see quite a bit of evolution at work.
User posted image
I tried to grab the accompanying tutorial files but the installer cannot be run. sorry.
Commented 3 months ago2023-12-07 09:07:28 UTC in journal: Starting half life map development Comment #105708
In the good old days of 1998 when Half-Life hit the shelves, bundled in the CD with the game is Worldcraft 2.0. It's really primitive and so is the compilers, but it has one very crucial thing: A step by step "In The Beginning..." tutorial that guides you step by step of making a playable, presentable first Half-Life map. The tutorial series was dropped in later Worldcraft versions, and that I think was a misstep. Sure, everyone is borderline terminally online 25 years later but not having an "official" tutorial series leaves new people reaching, bewildered by 25 years of accumulated knowledge, and become paralized.

Luckily for you, the "In The Tutorial" series has been somewhat recreated here on TWHL.
It's good enough but one part deviates from the formerly-official series so it left a basic knowledge gap. Luckier still, I have the old help file, with the original tutorial series, decompiled below:
Loading embedded content: Vault Item #6737
You can take a look at the original tutorials and start your journey the same way I did in the early 00s. Note: the images are not embedded into the text document but you can just cross-reference with the images on the archive.
Commented 3 months ago2023-12-04 15:33:45 UTC in vault item: corridors_collide Comment #105689
aww, why not include the file instead of removing the ambient_generics?
btw it's from opposing force. i would've just copied it from there to get it working...prior to the update that is.
Commented 3 months ago2023-12-01 01:01:05 UTC in wiki page: Tutorial: Total Map Optimisation Part 3 (wpoly, clipnodes, engine limits, compile parameters) Comment #105680
we should migrate the images from imgur
Commented 4 months ago2023-11-28 17:00:41 UTC in wiki page: item_worldmap (Counter-Strike: Deleted Scenes) Comment #105669
alright, let's add back "junk".

I did suspect that there's a 32-bit limit on the tracker for mission progression, as a community-made mod that stitches all the extra official missions into the main campaign has the mission locks bugging. In the stock game where these extra missions are standalone they appear as unlocked. I'll update that on the notes as well.

some other ideas to use the world map for custom missions would be to have a separate mod that falls back to czeror, and that mod can perhaps have its own missions on the world map. other than that, a separate hub map is unavoidable, but it should be its own map and not overwrite the training map as was done previously.
Commented 4 months ago2023-11-28 13:27:01 UTC in wiki page: item_worldmap (Counter-Strike: Deleted Scenes) Comment #105667
[Speculation] (pop)
Because this brush entity is oddly named as item_ it might reflect an earlier game mechanic where it's an item in your inventory that you need to select in order to interact with.

Not putting it in because, speculah.
Commented 4 months ago2023-11-28 10:15:41 UTC in journal: Goldsrc BSP relational model Comment #105666
What are C structs but database records, and its members but db fields?

But really, reading the BSP specs and how a lot of the struct fields are indices into the next struct really reads like relational model of a db, and with 14 lumps interacting this way I really, really needed a visual aid to understand how it all relates with each other, which strangely for the 27+ years of BSP's existence has not existed in any form. Hence the chart, and this journo entry I made to put it in.
Commented 4 months ago2023-11-28 05:06:53 UTC in wiki page: Tutorial: How to Make HD 1080p Backgrounds for HL1/Goldsrc Games Comment #105664
Half-Life 25th Anniversary Update findings
Post-25th Anniversary Update Half-Life has a separate set of files for HD backgrounds:
  • HD_BackgroundLayout.txt
  • HD_BackgroundLoadingLayout.txt
In all the files the second field of the background tile set to fit instead of scaled, which appears to crop the background as a whole to fit the screen's aspect ratio instead of stretching it. Example line:
resource/background/21_9_1_a_loading.tga    fit    0    0
The above findings may not be finalized on Valve's part and may be subject to change. It's posted here for information purpose only.
Commented 4 months ago2023-11-22 14:26:30 UTC in vault item: Sykhiv_yards_b2 Comment #105650
Oh hey, new areas! Sadly the download link is broken. nvm it works now.

Feedback:
  • Outdoor light_environment should be white on midday, with ambient colour set to sky blue.
  • Grass texture is too rough. Find a softer one.
  • Grass colour doesn't match the tree or the other foliage. It's too green.
  • Grass terrain is super bumpy; I'm pretty sure it affects performance. It doesn't need to be super bumpy or super-divided. The central courtyard in crossfire achieves a non-flat terrain with just 3-4 brushes.
Commented 4 months ago2023-11-21 00:18:31 UTC in wiki page: Tutorial: Setting up a Mod: Part 2 - Splash Screens (Steam) Comment #105646
Half-Life 25th Anniversary changes
Due to Valve reworking the game menu to visually look like the old WON menu screen, the structure of GameMenu.res is changing and in flux until Valve finalizes it.
As usual, switch to the steam_legacy beta to continue using the old specs in the meantime.