News | Forum | People | FAQ | Links | Search | Register | Log in
Spiked Quakespasm Modding/Coding Help Thread
Thread for figuring out all the new particle and modding features in the "Spiked" version of Quakespasm.
-----

Actual QSS engine download:
http://triptohell.info/moodles/qss/

-----

Tutorial on how to enable rain and snow on the Quake start map:

1. Video of snow: https://youtu.be/DvqxsJChXH0
2. Video of rain: https://youtu.be/NRud8T88tDc

Steps:

1. Put this start.ent download in c:/Quake/id1/maps folder. Tells it what textures emit snow and rain.

2. Put this weather.cfg download in c:/Quake/id1/particles folder. Indicates spawn information on particles and how they behave.

3. Enter r_particledesc "weather classic"; map start in the console. I assume "weather" is the name of cfg. Also seems to work with just r_particledesc "weather".

Stuff:

Q: How do you find out the name of textures?

With Quakespasm I don't know that you can, but in Mark V just type "tool_texturepointer 1" in the console and look at a surface and it displays the name of any texture you look at on-screen. screenshot

Q: How is the external ent file made and what does it need?

Open up Mark V and type "map start". Now just type "copy ents" and the entities for the entire map is on the clipboard. Open a text editor and paste. Save it as c:/Quake/id1/maps/start.ent

The first few lines of the file look like this, add the 2 bolded lines that tell the particle system that the texture names are "sky1" for snow and "wizwood1_8" for rain.

{
"sounds" "4"
"classname" "worldspawn"
"wad" "gfx/start.wad"
"_texpart_sky1" "weather.tex_skysnow"
"_texpart_wizwood1_8" "weather.tex_skyrain
"message" "Introduction"
"worldtype" "0"
}


A devkit is also available HERE http://fte.triptohell.info/moodles/qss/QSS_DevKit.zip with source code examples of how to create your own custom HUD using CSQC. The examples show CSQC recreations of the classic HUD as well as variations for the missionpacks and should serve as a good starting point for your own creations. There's a few other goodies in there too (e.g. particle stuff), so check the readme inside the devkit.

Discord
There's now an official Discord for FTE and QSS, find it here: https://discord.gg/E6fTcgB3ev
First | Previous | Next | Last
Afaik 
ter-shibboleth world is 65536 units,

not sure, but prolly you have to add -bsp2(or something) switch to your command line 
@ericw Tools Says 
-bsp2

Create the output BSP file in BSP2 format. Allows the creation of much larger and more complex maps than the original BSP 29 format). 
Escaping The +- 4096 Bounds 
sv_protocol 999
gl_farclip 100000 (or whatever you need)

does bsp2 have anything to do with this, other than indirectly? (i.e. bigger maps - more leafs, clipnodes etc.) 
 
BSP2 has nothing to do with the bounds. 
Yeah Thought So. 
 
There Is A Bound Limit On Bsp29 
Node bounds in bsp29 are int16_t so all of the coordinates have to be within -32768 to 32767; bsp2 changes these to float.

Not all engines use this value (fitzquake family doesn't) but winquake/glquake do use it for culling, and it would totally break rendering in those engines if you overflowed the coordinates, so it should probably be a hard qbsp error.

(talked to nemo on discord and I think he solved the issue, was too many verts on a sky polygon) 
 
thanks for the replies, i got it all !
huge maps are so cool... 
Misaligned Lumps 
Just installed QSS and im getting errors in the console about ammo crate bps misaligned lumps. No idea what that means, and I didn't get those errors in original QS... 
With A Mod? 
Which level? I don't see any with id1 / e1m1, for example.

I get some for breakables in ad 1.70 patch 1 (maps/ad_brk/wood01-4.bsp)

It indicates a bug with the qbsp or other tool that wrote the .bsp file. 
 
Yeah, it's custom bsp's I had installed for the ammoboxes, regular Quakespasm seems fine with them, as does QSS, except QSS pastes the error in the console 
 
the warning is new to QSS and won't get displayed in QS.

if its your map/bmodel then update your tools, otherwise just ignore it. it won't affect the vast majority of people so w/e.

(any maps/bmodels that get warned about will give crashes if you try running them on android/ios/rpi, or really ANY non-x86 cpu. which means that its really easy to fail to notice when tools write out buggy files - I was guilty of it too with fteqcc a while back). 
Projectile Reflection 
I'm a beginner at QuakeC, and I want to make a weapon that works like the airblast from Pyro's flamethrower from Team Fortress 2.
The airblast can reflect projectiles and launch players away depending on where the player's aiming it, here's how the hit detection is done in TF2:

https://www.youtube.com/watch?v=W1g2x4b_Byg&t=13s

I suppose it would be easy to replicate this in QuakeC, I'd just need to spawn an entity with its center offset to the player and in the direction he's aiming. But this has its problems (and they're present in TF2 and shown in the video), from what I've read Quake doesn't rotate hitboxes, and this will produce some really strange situations if the player is reflecting at an angle.
Is it possible to check collisions in a cone in QuakeC? If it is, I suppose I'll have to implement the math by myself.
Are there any other alternatives? 
 
findradius will get things within a sphere, that might be less bad than an AABB

you could also math it up yourself to get a cone, by testing angle between the airblast's forward vector and the vector from the airblast's origin to the incoming projectile.

However, a sphere might be better and i would size it big enough to be more forgiving to the player -- false positives are better than false negatives in this case i think. 
@Torgo 
Not sure if the source is out there but there was a weapon called the AirFist in the Painkeep mod. It was also a stand alone mod released as a promotion for Painkeep IIRC. It's been over 20 years. But it was very cool back in the day.

+1 for making new stuff for Quake 
 
Yah AirFist was the first thing I thought of too. :-) We ran that for a while on one of the kitty1.stanford.edu servers back in the day.

Looks like it can still be got here: https://www.quaddicted.com/files/idgames2/quakec/weapons/airfist1.zip

...and that does include the QuakeC source code.

(not sure if there was ever another release after version 1) 
 
BTW Torgo, that's just nostalgia coming through... we're not trying to dissuade you from making something new along those lines.

It's always cool to be able to look through a relevant codebase though, especially if you're just starting out with something as idiosyncratic as QuakeC. 
@Torgo 
I agree with Johnny. I am new to QuakeC too so any existing code to look at is a godsend! 
 
Thanks for the help guys, I'm really against discovering the wheel again, so existing code helps a lot.

Also, I really appreciate your videos dumptruck_ds, it's actually the reason I started messing with Quake. 
You Might Need... 
Extras_r4 has some fancy particle effects, in particular it turns nails and rockets into 'particle' objects that react to forces. That mod has a cool gravity well thing that pulls nails and rockets away. Could be used to do the reverse.

http://www.quaketastic.com/files/single_player/mods/extras_r4_fixed_saves.zip 
@Torgo 
Thanks for saying that, makes my day!

There's a newer version of extras now that Khreathor fixed up. I'd suggest that. The source is included in uwjam. See here:

http://www.celephais.net/board/view_thread.php?id=61613 
 
just curious why on the first post it is raining inside?

2. Video of rain: https://youtu.be/NRud8T88tDc 
@R00k 
maybe baker was curious as to whether the floor entity thing would cause the splash effect too (not my video, and I don't remember what state I left my examples in). 
Traceline And Texture Questions 
I'm trying to check what texture is below the player when he walks, then I'll change the sound of his steps depending on the texture.
I found this function in fteextensions:

string(entity e, float s) getsurfacetexture

So I thought that I should use traceline to get an entity below the player to get its texture:

traceline (self.origin, self.origin + '0 0 -40', 0, self);

But trace_ent always returns world.
I'm almost positive I'm doing everything wrong here, that traceline only interacts with entities and not the map itself.
Any ideas? 
 
Yeah, I was completely wrong.
Just do this:


local float surfnum = getsurfacenearpoint(world, self.origin + '0 0 -40');
local string s = getsurfacetexture(world, surfnum);
sprint(self, s); 
Missing Textures On Models 
Textures for models used with DP do not affected in QSS. Models still grey.
How to solve an issue? 
First | Previous | Next | Last
You must be logged in to post in this thread.
Website copyright © 2002-2024 John Fitzgibbons. All posts are copyright their respective authors.