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:


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

1. Video of snow:
2. Video of rain:


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".


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 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.

There's now an official Discord for FTE and QSS, find it here:
First | Previous | Next | Last
Alpha Masked Model Support - How They Work 
Alpha masked models are supported --- texture transparency for trees, brushy stuff, etc.


See it in action in Quakespasm "Spiked" by downloading this mod and extracting to c:/Quake/alpha_mask.

Start Quakespasm and do "game alpha_mask; map start" and look at the lavaball in the HARD hall way.

This is how they work:

1. You'll need QME 3.1 to set the flag. Download QME 3.1 shareware

2. The flag is 0x4000 (same as Hexen 2). Here are screenshots:

QME 3.1 - Model view - screenshot
QME 3.1 - Model menu - screenshot
QME 3.1 - Flags Panel - screenshot 
Holy Crap 
Holy Crap
Holy Crap this is awesome. All the cool stuff of Darkplaces but still twisty water. 
This is all very cool. Thank you spike. 
And Baker For Putting This Help Together 
Great Stuff 
Any chance of implementing lit water in this? It would be a huge incentive for mappers. 
+1 For Lit Water 
Thank you so much Baker for your effort to show examples, this is very easy to follow.

-If someone not using QS-spike attempted to play a map that had weather enabled via the worldspawn key option, would they just not see the effects or would they receive console spam/errors?

Anyway, this is completely amazing to see these type of effects in my favorite engine! 
Just no effects. No console print or anything. 
Playing Around With Weather. Pretty Awesome 
So, I've made a new snow particle texture (tga only yes?). Where do I put this tga?

Is there documentation for the FTE particle system? (I assume it works basically the same as this?) 
So This Is Interesting :) 
but um, probably not desirable to inline as a blob.

One idea is - would Spike/others be interested in uploading vaguely stable versions (as tarballs with a readme.txt) to this directory ?
and we can link/document it in some form ?

If so, pls create a sourceforge account and i will add you to the project and you can upload to this directory.

This would probably be easier for everyone than the alternative; preparing patches and chatting to Eric and Oz about committing single features to main. Cheers 
Ok I Just Figured It Out Myself 
so if I have image bensnow.tga, i can dump it in the particles folder, then enable it by using

texture "particles/bensnow" in the definition in weather.cfg 
I Can't Wait To Play Your Yellow Snow Adventure Kinn 
Czg I Thought You Were More Into Golden Showers? 
You Know, One Leads To The Other 
Another Question 
I can't immediately tell from the documentation:

Let's say I wanted 4 different rain settings for the same bit of sky (off, light, medium, heavy) - I assume I'd need to create a separate particle definition for light, medium and heavy. Can I disable/enable particle emission from the sky texture, mid-game, via QC? Can I change which particle definition the sky texture uses mid-game, via the QC? 
Spike's Weather.cfg Raw Comments ... 
to use from qc, r_particledesc "weather classic" or call particleeffecnum("weather.te_rain") so the engine knows which config to use, then use the particle[rain|snow] builtins as normal.

without qc changes option 1) use a texture called skyrain or skysnow, in addition to the r_particledesc thing so that this config is actually used (this is more for people to add stuff to existing maps).

without qc changes option 2) add a worldspawn field called "_texpart_TEXTURENAME" with value "weather.tex_skysnow" or "weather.tex_skyrain"

without qc changes option 3) an equivelent console command: r_partredirect tex_TEXTURENAME "weather.tex_skysnow"

note that without qc, you need to restart the map for it to take effect.

on the other hand, if you wanted to emit particles from models, use r_effect (which can optionally hide those models too).

to override trails defined by model flags, you can use the r_trail command.

weather effects that leave decals are probably overkill

one option is to spawn a particle from qc that emits other particles that leave trails. emitting such trail emitting emitters from surfaces is definitely overkill.
It looks like from the weather.cfg comments you can do that, you might need to do some experimentation. If you get it to work, plz post back and share. 
I can't see a way to set the particle emission for a texture, from the QC.

It can be done from the console (e.g.) r_partredirect tex_TEXTURENAME "weather.tex_skysnow"

...but that requires a map restart to take effect. :/ 
Cross Posting A Piece Of Knowledge 
Baker: random angle on rain like Qrack's gl_rain

Spike: use velbias, and add a bias so it's angled.

or just make it bounce off walls at a high velocity, because that's fun too, then turning into blood, bouncing some more, and splattering all the walls with decals.

you currently need to reload the current map in order to change the effect associated with sky.

the r_partredirect command *should* do what you want, but its implementation is still lazy and doesn't reprocess anything (which doesn't affect regular particle effects because I just left it using strings for most things, but does affect surface+model associations).
(it can be used recursively too, and possibly should if you want it to be generic for mods, though it gives up after 5 levels to avoid infinite loops).

you can also change r_particledesc, but doing so will obliterate all existing particles, but not the polys emitting those particles...
really r_particledesc is meant to be a user-command rather than a mod one, while the namespace stuff is meant to be for mods (config names allow for downloads).

the _texpart_foo thing is great because it means the config can be used regardless of the r_particledesc setting the user used, so its noticably more robust than trying to use the automatic tex_foo names.
a user can still override eg "weather.tex_skyrain" by just using that name (including the 'wrong' config name) for an effect in some config named by the r_particledesc cvar. Or you can use r_partredirect.

and yeah, I suck at explaining. much of it is just me trying to give complete info, even if its not useful to you personally. 
Particle Fields Descriptions - FTE Wiki 
Very Important Link:

Spawn Related Fields

. *count (count)*
- count: specifies number of particles to spawn with point effects

. *step (step)*
- step: specifies Quake units per particle to spawn with trails
! Note: step (x) is a synomyn for count 1/(x)

. *die (die)*

- die: specifies time in seconds it takes for the particle to die. A value of 0 means that the particle will be rendered for a duration of 1 frame.


/Far more detail and number of fields @ wiki 
Sparks, Lava Effects, Trails 
fte particle examples are rare, but I remembered one from long ago from Haze.

Sparks, Lava effects, trails

1) haze.cfg download in c:/Quake/id1/particles folder
2) Type r_particledesc "haze"; map start

Here is result in video:

The config is not completely recognized and is not entire Quakey --- and Haze never intended it to be.

But the contents of haze.cfg may serve as a reference for modifying/adding effects to models or particles. 
Cl_bobcycle 0 
gives a grayflash 
Cl_bobcycle 0 
Actually causes a floating-point division by zero in most Quake engines; line 113 of Spikespasm view.c:

cycle = cl.time - (int)(cl.time/cl_bobcycle.value)*cl_bobcycle.value;

Just set it to a really really low value instead. 

sorry it took so long. I got bored, and distracted. so I might as well give what I have before I forget about it completely.
Anyway, this build should fix various issues with the previous one, as well as making protocol 15 servers more compliant (which makes it a little more limited, but oh well). 
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.