Forum posts

Posted 3 days ago2023-11-25 13:54:11 UTC
in Finding out how a map works Post #348086
I haven't used Crafty in many years, but it's possible it's geometry-only or might need some configuration set up for your game/mod.

Give BspGuy a try (you'll find it in the Viewers section of Tools and Resources) and potentially the Unified SDK decompiler (Decompile Tools section of the same page).

If these two don't work out, try using Ripent. If the entities are there, it'll export them to the entity list.
Posted 3 days ago2023-11-25 13:44:20 UTC
in My decal spray logo doesn't look good in-game Post #348085
The303 has a great guide for this type of sprays, you can find the article here.
It should help you set it up correctly.
Posted 3 days ago2023-11-25 13:25:03 UTC
in Finding out how a map works Post #348083
At the very least, as long as the triggers exists in the BSP you should be able to read their data using Ripent or a viewer like BspGuy, but they should also show up when using a decompiler.

You said you already tried decompiling and using a viewer. Which were they? Did any entities show up or was it just the trigger that didn't show up?
Do you remember anything about your setup (what kind of triggers used etc)?
Posted 1 week ago2023-11-19 22:38:30 UTC
in please help Half-Life can't find my map Post #348066
As UrbaNebula says, read the compile log. It will tell you exactly the reasons why it failed.
Keep an eye out (or use text search) for the key word Error, and good to check for Warning as well as it might tell you about issues that didn't prevent compile but might affect the map nonetheless.
Posted 3 weeks ago2023-11-02 09:21:42 UTC
in Mapping game of telephone Post #347989
Definitely will need both time and map size constraints. I'd say tops 5 days per mapper. Perhaps instead of pre-decided chain we could ask the remaining links who's available that following week to be the next link.

Unfortunately there's a probability of ghosters. I hope those that suddenly find themselves lacking in time or motivation or otherwise want to opt out let the rest of us know as soon as possible so we can either find a replacement or re-order the chain. 🙂

If someone has a loose lip they cannot help, I hope they can find somewhere else to be than here and ruining the fun for the rest of us. :p
Posted 3 weeks ago2023-11-01 09:54:15 UTC
in Mapping game of telephone Post #347985
So Foxo came with the idea of a mapping game of telephone and I think it would make for a very fun collab.

Of course, there's many ways it could be executed so it's important to find a plan that keeps the essentials of the game (i.e. transmission chaining, or how information changes when sequentially told and interpreted) while keeping it fun to do.
In case there's enough mappers interested, I guess I can propose a plan just to kick off the brainstorming:
  • I think we should keep our messages limited to an one-sentence idea, and each link in the chain is a pair of an interpreter and a mapper.
  • The interpreter's job is to receive the last map, play it, and describe it as an one-sentence idea and tell their mapper this idea, and otherwise keep the idea secret.
  • The mapper's job is to take the interpreter's idea and make a small map based on it, with a beginning and an end, and send it to the next interpreter in the chain, and otherwise keep the map secret.
  • A secret "original idea" is given to the first mapper in the list, and consequently sent through each link in the chain.
When the last link in the chain has finished, the maps are combined and each map starts with a title showing the idea it was based on. That way you get to play through this evolution of the original idea.
Having the interpreter and mapper separated would also help keeping visuals and themes hidden, and hopefully produce some interesting results.
Posted 4 weeks ago2023-10-30 20:01:53 UTC
in Modify names in Counter Strike Post #347979
Please post your solution, so that others looking for it can find it here.
Posted 1 month ago2023-10-26 14:47:59 UTC
in wally not working Post #347976
Try to use drag-and-drop from explorer instead of copy-and-pasting.
Posted 1 month ago2023-10-23 07:45:00 UTC
in Problem using -nowadtextures Post #347971
Oh right, mixed up nowadtextures and wadinclude, my mistake.

Still, the main issue was CSG being run twice, the second time without the command, so it was the latter that counted for the rest of the compilation.
Posted 1 month ago2023-10-21 20:52:57 UTC
in Problem using -nowadtextures Post #347968
After that just add the name of the wad after the argument. The entire command should look like
$csg_exe "$bspdir/$file" -nowadtextures de_heights
Posted 1 month ago2023-10-21 20:50:00 UTC
in Problem using -nowadtextures Post #347967
You're running CSG twice. Remove the first command from the list and add -nowadtextures to the second occurrence of CSG, like so:
User posted image
FortressOne should be standalone. As for getting it to work or modding it, your best option there is to join their Discord server and ask there instead.

For the code there's a link to their GitHub on the website. As for which repo is relevant for modding, again the Discord server should be the place to ask or look around in (they likely have channels and pinned messages for this already).
Yeah, Admer's playlist, and this series of tutorials are of great help when learning to use the SDK.
You might also check out this tutorial for setting up a HL mod as well.

As for why FortressOne would be easier to mod, it's because it's open source (the game code is publicly available and free) so you won't need to go through recreating anything as you would need to with HLSDK.

Lastly, the Windows Defender message is likely because of a missing app signature on the executable. Apparently Windows requires this sort of signature on applications now for Defender not to alarm you about it. But since it's open source, you can look through the code yourself and even compile it yourself to make sure there's nothing nasty in there, and then if you trust it click on Advanced (or something like that) and click on Run It Anyway (might say something else along those lines).
TFC did start out as a HL1 mod, a port of the original Team Fortress from Quake, and later released as a standalone game (although pretty much still just a HL1 mod, which becomes fairly obvious considering all the shared assets and the Hunted map being modified parts of a section of HL1's campaign).

So the timeline of the games goes something like:
  • Team Fortress (Quake and later QuakeWorld)
  • Team Fortress Classic (Half-Life 1 mod and later standalone GoldSrc game)
  • Team Fortress 2 (Source)
Although the name "Team Fortress" might be used to refer to any of these, disambiguating by using the full name matters when talking about modding these as there are major differences in the approach due to the different engines used.

So if you want to make a mod that's similar to TFC in terms of gameplay and feel etc, starting out with HLSDK and recreating the mechanics would be the way to go.

As for FortressOne, it's just an open source version of the original TF using the QuakeWorld engine (which has better networking than Quake) and would be the easiest base game to mod, but its code could possibly be used as a guideline on how to implement certain mechanics into your own mod.
Since there's no publicly available game code for TFC, there's likely not much you can do other than recreating the mechanics in HLSDK as its own mod as Shepard says.
There's an open source fork of the original Team Fortress which may or may not come in handy.
New classes and weapons sounds like code territory. As far as I know we only have HL1, Op4 and BS code SDKs but none for TFC and I'm unsure what options we have there.
Perhaps something like Metamod could be used? I've never messed around with that sort of stuff myself so can't really tell how much it could help you here.

Doors and keycards (regardless of class) is vanilla goldsrc so that's definitely doable.
Making it class-specific, on the other hand, iirc the TFC entities only had logic for team-specificity so might need code work to get that.
As for Valve's approval, don't worry about that. I don't think they even acknowledge TFC anymore, and even if they did they'd just be positive about it as they've always been about mods*.

(*except for HDTF, but you can't really call that a mod, and besides we don't talk about that dumpster fire anyway)
TFC is still being played. It's not as popular as it used to be, but there's at least a couple communities still around with regular players.

I'm not sure if there's any game code available, and engine code is definitely off the table, but if all you want to do is add new maps then all that isn't needed. If you're not changing anything code-wise you can just use TFC as the base game (iirc you can put "fallback_dir" "tfc" in liblist.gam), but if custom maps is all you're planning on making you don't even need to make a mod for that. Just publish those maps on their own and anyone already owning TFC can play those without getting a separate game/mod for it!

The making of and publishing of custom TFC maps is over two decades old and I'm sure the remaining players (including me) would be very grateful to try out new maps 😊
LLMs such as ChatGPT should only be used as entertaining novelties, not as actual sources of information.

They don't know anything, they don't provide any guaranteed correct information. All they're good for is making convincingly enough human-like text.
Posted 1 month ago2023-09-30 18:10:49 UTC
in Is it possible to decrease player's width? Post #347896
That's bounding boxes that you're thinking of, not hulls.
Posted 2 months ago2023-09-25 06:33:56 UTC
in How do you kill an npc after a scripted_sequence Post #347883
Using KillTarget will remove the monster from the game instead of killing it, which may or may not be what you want depending on whether you want it to leave a corpse or not.

If you want it to leave a corpse, the most consistent way would be using the 1000 event at the end of the animation's sequence (event 1000 tells the game the actor died on the event's frame). If the animation doesn't already have this event and if you're making a mod you can modify your mod's barney model directly, or if making a map pack you may make a copy and name it something else.

A less reliable way would be using trigger_hurt with a high damage and non-gibbing damage type (e.g. DROWN),
or if you want the monster gibbed you can just use KillTarget as above and target a gibshooter/env_shooter which should be more reliable than using trigger_hurt.
What UbOh said.
Having Ignore Group on makes you select the brush itself instead of the entity.
Posted 2 months ago2023-09-22 16:27:04 UTC
in Is it possible to decrease player's width? Post #347872
If the walls around the doors aren't used for sealing the map, they could be made into func_detail and use zhlt_hull1 and zhlt_hull3 pointing to narrower info_hullshapes (for standing and crouching respectively, with the defaulthulls key set to 0). That way it's only those specific doorways that will behave as if there was a narrower player, and not mess with any other cliphulls (and probably save some clipnodes too, relative to using global info_hullshape).
Posted 2 months ago2023-09-22 16:13:40 UTC
in Is it possible to decrease player's width? Post #347870
Oh almost forgot! There's also player-entity collisions, I think those used bounding boxes. That should be in game code somewhere.
Posted 2 months ago2023-09-22 15:23:25 UTC
in Is it possible to decrease player's width? Post #347869
When it comes to interacting with the world, the player doesn't really have a width or height. It's just a point.
Instead it's the collision models (clip hulls) of the world that are expanded outwards by half the player's height and width. In other words, the invisible cliphulls of the game world are expanded so they meet this point in the center of the player.
User posted image
These cliphulls are baked into the maps themselves during compilation, so it is kind of hard-coded into the compiler. The latest VHLT (available here) does come with the source so you could change the compilers themselves to generate cliphulls according to your new player size, though an even easier way would be using info_hullshape which is a VHLT map entity that can define a new shape (including size) for the player.
Posted 2 months ago2023-09-12 19:13:37 UTC
in Hammer Face Alignment in Blender Post #347859
Great to hear it worked when done manually, hope the script works!

As for normal vectors, it's just a vector that stands perpendicular out from a plane, basically the plane's orientation (technically it's a vector standing perpendicular from a pair of vectors, but in this context a plane is just that pair of vectors).

Had to mess with this sort of stuff when making Map2Prop. 😄
Posted 2 months ago2023-09-12 12:04:58 UTC
in Hammer Face Alignment in Blender Post #347856
For the world planes, you can find a vertex's corresponding UV (assuming no scaling/shift/rotation) by projecting the vertex coordinates flatly onto the nearest world plane (e.g. XY for a upward facing face) divided by the texture's dimensions (since UV coords are relative to texture dimensions).

Problem is just figuring out which world plane to use (XY / XZ / YZ) which depends on the face angle.
Posted 2 months ago2023-09-12 10:04:16 UTC
in Hammer Face Alignment in Blender Post #347854
Have you tried, instead of projecting, to transform the face's world UV coordinates by the face's normal vector?
Essentially you want the UV coordinate plane to become aligned to the face's plane.
Glad it helped, scripted_sequence isn't the most intuitive entity to work with. It's Entity Guide entry can be very helpful, especially the Notes section. 🙂
When you give a scripted_sequence an Idle Animation it changes how it behaves. Walk and Run Move to Position types won't work anymore, and it will perform the Idle Animation until triggered.

In your scenario you want to use two scripted_sequences: One with the Idle Animation ("studycart") and Move to Position type set to Instantaneous (let's name it ss_idle), and second one with no animations set but with a Move to Position set to Walk (name this one ss_walk).

The ss_idle needs to be triggered before the scientist will react to ss_walk being activated (the scientist needs to be "released" from it).
So in ss_idle's Target key we can put ss_walk and lastly in the trigger_once's Target we can put ss_idle.
Now ss_idle should activate ss_walk on its own when activated.
Posted 2 months ago2023-09-01 18:45:40 UTC
in My map is not updating Post #347821
Firstly, Base Game Directory should be ...\steamapps\common\Half-Life\valve

Not important but Source Map Directory shouldn't be the game/mod's maps folder but instead a project folder holding the RMF/JMF project files (keeping it separate from your game data will help making things more tidy, for example in a folder like C:\hl_modding\28daysdemo\maps).

Secondly, I asked you if you compiled using Expert Mode, and if so what does the compile setup look like.
I'm asking since the paths in the log implies incorrect/incorrect parameter use in the compile tool arguments.
Posted 2 months ago2023-09-01 06:04:05 UTC
in My map is not updating Post #347819
This looks like a strange mess. Are you compiling in Expert Mode?
If so, could you post a screenshot of how your compile setup looks like?

Oh and double-check your Directories in game config as well. It should look something like
[Game Executable]

[Base Game Directory]

[Mod Directory]
(Assuming your mod is called "8daysdemo")
Posted 4 months ago2023-07-27 12:27:58 UTC
in How do i fix this black box? Post #347735
To get around it you can either cover it up with a wall/cliff/fence etc,
or you can use a corner corridor to block VIS from seeing into the underground room from the outside room.
You can read more about VIS here.
Posted 4 months ago2023-07-27 12:25:01 UTC
in How do i fix this black box? Post #347734
The problem is that SKY doesn't block VIS and also renders behind everything else.
So everything's that's rendered from your leaf will be visible in the SKY.
Ooh DoD! Haven't touched DoD mapping in over a decade and a half I think.
I think maybe Rust had some tutorials for it back in the day? I can try taking a look and see if I can find anything from back then.

Otherwise you could open a capture-the-flag in a bsp viewer or decompile it to see how the author made it work.
Posted 4 months ago2023-07-17 18:19:41 UTC
in HOW THE HECK do I link a CPP file to an FGD file? Post #347717
Where you should place the file, and many other questions you have, is already answered in the tutorial Penguinboy shared with you in the Shoutbox.

Further, I'd suggest looking at other monster classes in the SDK. There's a lot to be learned looking at the code that's already there.
Posted 4 months ago2023-07-17 05:27:13 UTC
in HOW THE HECK do I link a CPP file to an FGD file? Post #347714
I'd discourage using uppercase in the classname. Instead of monster_Charizard you should use monster_charizard.

There are other issues with the code in your post, but let's ignore that for now and focus on what actually registers the class as an entity for use in the .fgd file:
The LINK_ENTITY_TO_CLASS(mapClassName, DLLClassName) function.
First argument is the .fgd name you want to give your entity, and the second argument is the name of the code class for your entity.

In your case it should be:
LINK_ENTITY_TO_CLASS(monster_charizard, Charizard)
Posted 4 months ago2023-07-16 10:04:02 UTC
in How do I change the player's height? Post #347710
A common way to make the player smaller is a clever use of relativity: Just make everything else bigger. Just double the size of your levels, monsters, items etc.
Of course, doubling the size of your level in vanilla goldsrc might not be too optimal as you're halving how big you can make your maps which is already pretty limited in goldsrc, but at least it's an easy method that doesn't require coding.

As for coding it, it might be possible to halve the height of the view (v_origin perhaps?) though I haven't looked much into the view part of the code so I might be wrong there.
After that, the map compilers will still generate cliphulls for a normal player's size but you could use info_hullshape to halve the collision box experienced by the player.
Or since you're already coding stuff, use the source code that comes with VHLT and, if I'm not mistaken, change g_hull_size in hlcsg/hullfile.cpp. The three vectors are hull0, hull1, hull2, and hull3 respectively, but we only want to change hull1 (commented as 32x32x72, standing hull) and hull3 (commented as 32x32x36, crouching hull). Just halve the Z value in these vectors (i.e. {-16, -16, -36} => {-16, -16, -18}). Then using this new compiler, any new maps compiled with it will produce cliphulls for a player half the original height.
If you're making changes to player.mdl for something like this, it's best to save the modified version as a new file.
Now, when translating the model in Blender, did you apply All Transformations afterwards?

It should be noted it's not necessary to even open the model in Blender at all. With a model viewer like HLAM you can apply transformations directly to the model without any decompilation.

An alternative is to just decompile the model and add the $origin 0 0 -36 option in the .qc file.
That's not a problem with monster_generic but rather that player models have their origin in the center of the model, unlike monsters which have the origin at their feet.

Just move the monster_generic up by 36 units (half of the player height, 72 units).
Posted 4 months ago2023-07-03 08:22:17 UTC
in Is GoldSource still cool Post #347681
You're not too late at all! Whether you're here to enjoy goldsrc content, or to make your own, welcome!
Posted 5 months ago2023-06-28 21:02:47 UTC
in My model cant walk Post #347664
Great! 👌
Posted 5 months ago2023-06-28 10:35:43 UTC
in My model cant walk Post #347662
In the 3D editor you've used to create your model, does the walk animation actually physically move the root bone of the skeleton? If the root bone remains stationary then so will the headcrab.

If you're unfamiliar with this concept, then I suggest decompiling the model and opening it in a 3D editor and viewing the walk sequence and see how it causes the root to physically move away from the editor's world origin.
Yeah, scripted_sequence would definitely be the way to go.
Since it's a mod you're working on, you can perfectly use a modified version of stock NPC models (such as scientists and barneys) that are given window climbing sequences if the default sequences don't work for you.

Here's a simple example I made you could take a look at.
Oh and you can check out the Monsters Programming - Classifications and Relationships guide for more info about this
In goldsrc, monsters use a Classification system to decide how they feel about another monster.
The Classify() method is used by the monster to return which classification it belongs to, and IRelationship(CBaseEntity* pTarget) method is used to find the monster's relation to a target monster.

I guess you could override the IRelationship method in both hgrunt.cpp and islave.cpp to check if the target's classname is the opposite and return R_AL (-2, ally), something like:
if (FClassnameIs(pTarget->pev, "monster_human_grunt"))
    return R_AL;
Since both monsters already override that method with special handling, I'd suggest adding this check at the start of the method.
Posted 5 months ago2023-06-14 12:19:15 UTC
in Problems with light_spot in half life Post #347623
If the keyvalues of the light_spot are the same as in the leaked map you many want to experiment with the _fade and _falloff ZHLT keyvalues. The best likeness would be using the same qrad compiler that Valve originally used.
Posted 5 months ago2023-06-13 13:47:19 UTC
in I end up in the wrong place in the new map Post #347616
First of all, don't Big Box Seal your map, that's bad practice.

Secondly, you have two info_landmark entities sharing the same name in m2. This is the cause for your issue.
It creates a conflict where the transition doesn't know which entity to use.

Give each pair of info_landmark entities an unique name (for example, landmark1 for the m1->m2 transition and landmark2 for the m2 -> m3 transition).
Posted 5 months ago2023-06-13 12:26:25 UTC
in I end up in the wrong place in the new map Post #347614
As for everything else I wrote, have you checked those guides and attempted to launch the game normally and boot up the map from there?