Hosting and domain costs until October 2024 have been generously sponsored by dumptruck_ds. Thank you!
Editing FTEQW Modding
From Quake Wiki
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.
The edit can be undone.
Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 8: | Line 8: | ||
FTEQW has very advanced client-side QuakeC support and also comes with it's own set of qc_extensions for various features. | FTEQW has very advanced client-side QuakeC support and also comes with it's own set of qc_extensions for various features. | ||
* Here is Spike's famous [[CSQC guide for idiots]] | * Here is Spike's famous [[CSQC guide for idiots]] | ||
− | |||
− | |||
− | |||
* [https://github.com/shpuld/CleanQC4FTE CleanQC4FTE] is a QuakeC codebase for total conversion mods/games utilizing FTEQW. | * [https://github.com/shpuld/CleanQC4FTE CleanQC4FTE] is a QuakeC codebase for total conversion mods/games utilizing FTEQW. | ||
** It's been designed from ground-up to use CSQC as well. Does not come with assets. | ** It's been designed from ground-up to use CSQC as well. Does not come with assets. | ||
− | |||
− | |||
− | |||
== Built in compiler == | == Built in compiler == | ||
Line 34: | Line 28: | ||
== FTEQCC == | == FTEQCC == | ||
− | FTEQW comes with it's own advanced QuakeC compiler called [[FTEQCC]]. Under Windows it even has a graphical frontend called FTEQCCGui. It is also integrated into | + | FTEQW comes with it's own advanced QuakeC compiler called [[FTEQCC]]. Under Windows it even has a graphical frontend called FTEQCCGui. It is also integrated into FTEQWby default. |
[http://triptohell.info/moodles/fteqcc/fteextensions.qc fteextensions.qc] includes various keywords that only FTEQCC understands, and only FTEQCC supports FTE's extended instruction set, so if you want ints/pointers/massive mods/etc, you need FTEQCC+FTEQW. | [http://triptohell.info/moodles/fteqcc/fteextensions.qc fteextensions.qc] includes various keywords that only FTEQCC understands, and only FTEQCC supports FTE's extended instruction set, so if you want ints/pointers/massive mods/etc, you need FTEQCC+FTEQW. | ||
Line 62: | Line 56: | ||
Dedicated servers do not support a built in editor. If you set developer and hit a breakpoint, a dedicated server will simply print out the source code of each line which is executed, in a cheesy trace fashion. | Dedicated servers do not support a built in editor. If you set developer and hit a breakpoint, a dedicated server will simply print out the source code of each line which is executed, in a cheesy trace fashion. | ||
To recap: developer 1+.lno file = step-by-step debugging/code tracing. | To recap: developer 1+.lno file = step-by-step debugging/code tracing. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
== Coredumps == | == Coredumps == | ||
Line 114: | Line 103: | ||
== Terrain & build in terrain editor == | == Terrain & build in terrain editor == | ||
− | FTEQW supports large scale terrain maps that can be edited with the in-game terrain editor that comes with the CSAddon. See a small tutorial [https://spawnhost.wordpress.com/2012/08/14/on-the-rocks/ here] (''should be probably mirrored here at some point'') | + | FTEQW supports large scale terrain maps that can be edited with the in-game terrain editor that comes with the CSAddon. See a small tutorial [https://spawnhost.wordpress.com/2012/08/14/on-the-rocks/ here] (''should be probably mirrored here at some point'') |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
=== Ocean rendering for terrain maps === | === Ocean rendering for terrain maps === | ||
Line 132: | Line 115: | ||
Then the default tile is underwater, giving you a nice big ocean type thing. | Then the default tile is underwater, giving you a nice big ocean type thing. | ||
− | If you want waves and foam and other extra stuff, then you'll need to modify the glsl, which gets quite complicated (foam needs depth info, which you should be able to get with refraction fbos, but its a bit more expensive). | + | If you want waves and foam and other extra stuff, then you'll need to modify the glsl, which gets quite complicated (foam needs depth info, which you should be able to get with refraction fbos, but its a bit more expensive). |
== FBSP map support == | == FBSP map support == | ||
Line 141: | Line 124: | ||
=== Light styles in FBSP === | === Light styles in FBSP === | ||
− | Light-styles are a set of different styles on how light entities can behave, allowing them to pulse, flick, etc. Setting up a light with a light-style is as simple as creating a new field inside any light entity called "style", and feed with a number between 1 and | + | Light-styles are a set of different styles on how light entities can behave, allowing them to pulse, flick, etc. Setting up a light with a light-style is as simple as creating a new field inside any light entity called "style", and feed with a number between 1 and 11 (0 is standard lighting). |
+ | |||
+ | These are the actual effect names for them: | ||
+ | |||
+ | # FLICKER (first variety) | ||
+ | # SLOW STRONG PULSE | ||
+ | # CANDLE (first variety) | ||
+ | # FAST STROBE | ||
+ | # GENTLE PULSE 1 | ||
+ | # FLICKER (second variety) | ||
+ | # CANDLE (second variety) | ||
+ | # CANDLE (third variety) | ||
+ | # SLOW STROBE (fourth variety) | ||
+ | # FLUORESCENT FLICKER | ||
+ | # SLOW PULSE NOT FADE TO BLACK | ||
− | + | Note: This comes from the qfusion documentation, not quite sure if implemented the exact same way in FTEQW. | |
− | |||
− | |||
− | |||
− | |||
− | |||
== Server side anti-lag == | == Server side anti-lag == | ||
Line 164: | Line 156: | ||
float FL_LAGGEDMOVE = 65536; /*if set in self.flags, the entity will collide against a lagged copy of the world. The lagged copy depends upon the player, which is either this entity, or the entity's owner, whichever is the first player.*/ | float FL_LAGGEDMOVE = 65536; /*if set in self.flags, the entity will collide against a lagged copy of the world. The lagged copy depends upon the player, which is either this entity, or the entity's owner, whichever is the first player.*/ | ||
float MOVE_LAGGED = 64; /*if this bit is set within the 'nomonsters' argument of traceline or tracebox, the trace will collide against the lagged world. Uses the ent parameter as the lagged player. If its not a player then the owner is used instead.*/ | float MOVE_LAGGED = 64; /*if this bit is set within the 'nomonsters' argument of traceline or tracebox, the trace will collide against the lagged world. Uses the ent parameter as the lagged player. If its not a player then the owner is used instead.*/ | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− |