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.
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.
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.
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 11 months ago2023-11-22 14:26:30 UTC
in vault item: Sykhiv_yards_b2Comment #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.
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.
2024-05-08 - Safe to say the new specs have stabilized.
Mods no longer crashes if gamemenu is missing the WON-style help texts.
Mods with custom code may still crash from the differences in the UI resource files like new game dialog and option pages and may still require the legacy branch.
BIG CAVEAT: If the base textures are not square, YOU MUST USE near the same ratio for the horizontal and vertical tile factors or the detail textures will look stretched. Unfortunately, applied detailed textures in the wild are more stretched than not.
The current tool set [or utter lack thereof] makes it very very cumbersome to get the correct factors to account for the different dimensions of every texture in every map of your mod, which I think discourages more widespread application of detail textures to maps.
There is also an issue of textures containing a mixture of material types which basically need their own detail textures tailor made.
I'm thinking of developing a program to address these issues but I want it to be able to render the result in 3D. It's a very steep thing to pick up though. (I could fork off of bspguy but I don't want to take over someone else's cooking 😅)
If people were to do these kinds of meta-mods, they should be developed to run on metamod[-*] imo. That way there can be a path to extend it to run on top of any mod, not just Half-Life.
I know... but I don't feel like iterating it until it feels right. The panel func_button as is targets an intermediary, currently occupied by `trigger_relay`s so that those who wanted to fine-tune the sequence further can just put a multi_manager or more complex logic in its place.
I would do it if I were to actually put this in an actual mod... But don't count on it! 😅
^ This program is written in Python 3.11. Most Linux distros include Python by default so you can run the python file directly from the source files (though you might have to upgrade to 3.11). You need to know how to [optionally set up virtual environments and] install the required python packages. The requirements file is in the source, and you should be able to set it up in the standard Pythonic way.
Make sure you have Python 3.11 or above
Download the source:
Extract to a folder.
Open your terminal and type these commands:
cd <path to the src folder from the extracted path>
python3 -m venv venv
./venv/Scripts/activate
pip3 install -r requirements_gui.txt
Create a new file run gui.sh (name not important) and type these commands:
cd <path to the src folder from the extracted path>
./venv/Scripts/activate
./BspTexRemap_GUI.py
Now any time you want to run the program, you just run the bash script above.
Commented 1 year ago2023-11-01 08:48:00 UTC
in wiki page: game_player_equipComment #105613
^ idk what you mean. if you think i meant the classname (things JACK lists) then that's incorrect. I mean game_playerspawn is the targetname you assign to this entity, or any other entity of any classname.
the game fires entities of the name game_playerspawn on your behalf every time you spawn in a map. another example is if you have a game_text entity with the name game_playerspawn you'll see the game_text 's text when you spawn.
also, game_* entities in general are added sometime after retail release so this entity, and the game engine firing game_playerspawn would be absent on early WON versions or earlier SDKs.
Commented 1 year ago2023-09-15 19:11:04 UTC
in vault item: GoldSrc Map2PropComment #105560
A few more ideas:
Implement smoothing groups via brush entities
Implement mesh tying to bones via brush entities, with the origin brush as the bone position. This would open the door to animating or adding bone controllers with qc.
My end goal is to be able to turn a porta-pottie with its door into a model (you can guess where this is going...)
Here to clarify what "loading screen" means. It's the moment after the game entered fullscreen and before the main menu shows. It's actually not the time when the maps are loading (I tested) so you're actually only seeing it for a fraction of a second tops. No wonder nobody bothers making a custom one.
Commented 1 year ago2023-07-22 18:36:50 UTC
in vault item: GoldSrc Map2PropComment #105435
Haven't tried this yet as I've been out of my mapping streak.
This program is a step forward to make goldsrc propmaking workflow better, for sure. For one, it eliminates the need to use Blender+plugin for the obj to smd conversion.
I really hope you explore the possibility of extracting compiled .bsp models as .objs, which you can feed into the toolchain, as the lightmaps can then be baked into the textures of the props, suitable for larger props e.g. 3d skyboxes.
What this would make possible is a single compile workflow: csg, bsp, vis, rad, bsp2prop.
Again, this tool being at the end means it has rad's lighting information to work with.
I know unrealkaraulov's newbspguy fork has this exact feature, but it's not accessible in the CLI (in fact his fork's CLI is completely broken) and he's been on radio silence as of late.
Crafty can export .bsp as .objs as well but only the whole .bsp. Again, UK's newbspguy comes in a clutch with its ability to export individual brush model as a standalone .bsp, which you feed into Crafty. But again, the problem with these programs are that they have no command line interfaces.
Commented 1 year ago2023-03-21 08:09:59 UTC
in vault item: info_hullshape exampleComment #105179
Thank you for clearing the ambiguity once and for all. 🙏
A small note: If you want the player to fit a tight space of width w, the hull size must be at maximum w-1. If the narrowest passable doorway in the map is 24u wide, the hullshape needs to be 23u wide (both directions ofc).
Another note: The origin height of hull3 (ducking player) should be half of the original 36u hull regardless of the height of your custom hull. I did a little testing and, for whatever reason, you could get the ducking hull stuck under the standing hull, meaning players can't recover from a ducking position, and would stay ducking unless they jump.
I originally wanted to demonstrate with a func_tracktrain, but I don't have time to build a complete map with train tracks.
EDIT: Also I want to point out that this is not a working example of the func_[track]trains throwing out light, but instead of light being thrown onto them instead. Prolly should've put a screenshot or 2. That's for later.
I thought the tutorial series needs an addendum as to what other things you might want to set up for your mod; stuff that isn't related to in-game content. Feel free to add whatever I may have missed.
Also it's past midnight and I have to postpone integrating this to the rest of the tutorial's navigation.
Commented 2 years ago2022-10-02 07:14:08 UTC
in vault item: dm_diving_poolsComment #104823
It's like being on a real place. Very masterfully done.
Also couldn't help myself from opening the file in bspguy to see how the flip do you trigger all the buttons to get to the secret, and also having a sneak peek at it. It's a whole other level (in both sense!)
Commented 2 years ago2022-10-01 21:33:12 UTC
in vault item: TWHL CubiclesComment #104822
Still had crashings even without those folders.
I resorted to editing the liblist.gam and comparing it to another mod that also uses vanilla dlls and is confirmed to work - USS Darkstar. I replaced gamedll to match darkstar's so it now reads:
gamedll "..\valve\dlls\hl.dll"
the edited liblist.gam:
// gamedir "cubicles"
game "TWHL Cubicles"
startmap "cubicle01"
trainmap "cubicle01"
version "1"
// gamedll "dlls\hl.dll"
gamedll "..\valve\dlls\hl.dll"
// cldll "1"
mpentity "info_player_coop"
url_info "TWHL.co.za"
// hlversion "1110"
type "singleplayer_only"
any way to make monster_furniture solid? I've set the bbox and clipbox of the model but I still have no collision with the model. do I set the monsterclip flag?
Commented 3 years ago2021-08-12 14:31:47 UTC
in wiki page: info_texlightsComment #103668
The presence of this entity will not override the lights.rad file - both the values specified in this entity and the lights.rad file will be used by HLRAD.
Yeah, but which one takes precedence? If both contains texlight entry for the same texture, which one will be used?
This comment was made on an article that has been deleted.
Commented 3 years ago2021-08-02 20:01:39 UTC
in wiki page: Tutorial: DimensionsComment #103647
I must add that the 16HU to 1ft conversion is useful in at least one thing: stairs. If applying the aforementioned conversion to everything else makes people look short, then completely ignoring it and making steps rise 16HU makes them even tinier! 12HU rising and 16HU going sounds about right.
An alternative is to set the master to a multisource, and to make sure at least one entity (e.g. func_button) in an unreachable area targets the multisource. This way you don't have to name the doors. And you can see/sort/mark the locked doors in the entity report by filtering the master property to the name of the multisource.
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.
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.
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.
fit
instead ofscaled
, which appears to crop the background as a whole to fit the screen's aspect ratio instead of stretching it. Example line:Feedback:
As usual, switch to the steam_legacy beta to continue using the old specs in the meantime.
The current tool set [or utter lack thereof] makes it very very cumbersome to get the correct factors to account for the different dimensions of every texture in every map of your mod, which I think discourages more widespread application of detail textures to maps.
There is also an issue of textures containing a mixture of material types which basically need their own detail textures tailor made.
I'm thinking of developing a program to address these issues but I want it to be able to render the result in 3D. It's a very steep thing to pick up though. (I could fork off of bspguy but I don't want to take over someone else's cooking 😅)
func_button
as is targets an intermediary, currently occupied by `trigger_relay`s so that those who wanted to fine-tune the sequence further can just put amulti_manager
or more complex logic in its place.I would do it if I were to actually put this in an actual mod... But don't count on it! 😅
run gui.sh
(name not important) and type these commands:game_playerspawn
is the targetname you assign to this entity, or any other entity of any classname.the game fires entities of the name
game_playerspawn
on your behalf every time you spawn in a map. another example is if you have agame_text
entity with the namegame_playerspawn
you'll see thegame_text
's text when you spawn.also,
game_*
entities in general are added sometime after retail release so this entity, and the game engine firinggame_playerspawn
would be absent on early WON versions or earlier SDKs.I got somebody reaching out with a bug but I can't ask for a test file because he's compiling for DoD and I don't have DoD.
Discord id:
youdontmatter.giveup.
(don't ask why)This program is a step forward to make goldsrc propmaking workflow better, for sure. For one, it eliminates the need to use Blender+plugin for the obj to smd conversion.
I really hope you explore the possibility of extracting compiled .bsp models as .objs, which you can feed into the toolchain, as the lightmaps can then be baked into the textures of the props, suitable for larger props e.g. 3d skyboxes.
What this would make possible is a single compile workflow: csg, bsp, vis, rad, bsp2prop.
Again, this tool being at the end means it has rad's lighting information to work with.
I know unrealkaraulov's newbspguy fork has this exact feature, but it's not accessible in the CLI (in fact his fork's CLI is completely broken) and he's been on radio silence as of late.
Crafty can export .bsp as .objs as well but only the whole .bsp. Again, UK's newbspguy comes in a clutch with its ability to export individual brush model as a standalone .bsp, which you feed into Crafty. But again, the problem with these programs are that they have no command line interfaces.
A small note: If you want the player to fit a tight space of width
w
, the hull size must be at maximumw-1
. If the narrowest passable doorway in the map is 24u wide, the hullshape needs to be 23u wide (both directions ofc).Another note: The origin height of hull3 (ducking player) should be half of the original 36u hull regardless of the height of your custom hull. I did a little testing and, for whatever reason, you could get the ducking hull stuck under the standing hull, meaning players can't recover from a ducking position, and would stay ducking unless they jump.
Also to let you know I released a tool that makes use of the 12-char quirk and renames embedded custom textures to those in materials.txt:
EDIT: Also I want to point out that this is not a working example of the func_[track]trains throwing out light, but instead of light being thrown onto them instead. Prolly should've put a screenshot or 2. That's for later.
game_playerspawn
to automatically trigger this entity at the start of the map.Also it's past midnight and I have to postpone integrating this to the rest of the tutorial's navigation.
Exporting background image to tiles using Irfanview
Mx8
(M is the row numbers 1-5) (5 files total)5xN
suffix (N is the column numbers 1-8) (8 files total)MxN
, M=1-4, N=1-7)Mx8
suffixed files)5xN
suffixed files)5x8
suffixed fileAlso couldn't help myself from opening the file in bspguy to see how the flip do you trigger all the buttons to get to the secret, and also having a sneak peek at it. It's a whole other level (in both sense!)
I resorted to editing the liblist.gam and comparing it to another mod that also uses vanilla dlls and is confirmed to work - USS Darkstar. I replaced gamedll to match darkstar's so it now reads:
the edited liblist.gam: And now it runs!
edit: rating
do I set the monsterclip flag?
master
should point to agame_team_master
entity for teamplay modeLet this be the definitive guide for sentences.txt, especially for the scant information on the modifiers.
12 by 16 would be more human scaled. If you're spooked of 12 not being on grid, have your stairs in groups of four, which measures a neat 48 by 64.