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
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.
 
@Kinn 
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. 
Baker 
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.

Source 
@kinn 
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:

http://fte.triptohell.info/wiki/index.php/ParticleFields



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: https://youtu.be/4BTywfBdbRc

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. 
R4 
http://triptohell.info/moodles/junk/quakespasm-spike-r4.zip

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

Nice job Spike! GLQuake could connect to it just fine when running sv_protocol 15. 
./particles 
I tried adding these things into a pak with pakexplorer, but "particles" is an invalid filename apparently. Any way around that? Weather would be a nice addition to my mod for engines that support it. 
 
I have a particlefont.tga inside my darkplaces\id1\particles folder, if that's any indication. 
 
I know, different engines, but it still could be of some use. 
 
Filenames of the 8.3 format is a PakExplorer limitation. AFAIK, the pak format allows for longer names, as long as the whole path is no more than 56 characters.

I haven't tried any other tools yet. 
 
Pakscape is what you need 
R4 
Finally got around to adding more support for this to the latest version of AD and the particle scaling looks really good. Its nice to know that all my time spent creating a DP particle file has not gone to waste! :)

For some reason I cannot get a screen shake entity to work. Its called "misc_shake" and is based on the version from the RRP codebase. It specifically uses punchangle_x on the player to move the screen around and velocity to make the player move around. For some reason this entity is doing nothing to screen or player.

The new function does use findradius to locate the player and that is certainly working, but the parameters on the player are being ignored. Any ideas why? 
A Storm Is Coming 
An example video of the QS-Spike (v4) client running with AD 1.5 showing DP like particles effects and weather (rain) 
 
all these teasers are phenomenal. 
:O 
The amount of atmosphere that adds, holy cow it is gorgeous. So players not using QS-spiked will not have the rain or sound effects correct? 
 
DP users should. Now QSS needs its own Pretty Water mod. 
 
-- and wouldn't have smoke effects coming from the flames. 
 
I'm sure Seven could do something about that.

*thinks about Seven's forthcoming SMC v5.53*

Hmmm... Seveeeeen? 
R4 Feedback 
The QC example in weather.cfg has spelling mistakes
Line 4 - particleeffectnum("weather.te_rain")

In order to check for rain / snow functionality the engine should respond to the following extension checks, I am getting false from these.
checkextension("DP_TE_PARTICLERAIN");
checkextension("DP_TE_PARTICLESNOW");

@Bloughsburgh
not using QS-spiked will not have the rain or sound effects correct?
I plan to only implement this for QS-Spike and DP clients 
@Mugwump 
Prepare PBR materials and real-time GI too. 
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.