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 34: Line 34:
  
 
== 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 by default.
+
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 62:
 
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.
 
== Profiling ==
 
* "show_fps 2" will draw a frametime graph
 
* "profile_ssqc/csqc" will show qc functions are taking cpu time
 
* "r_speeds 2" is used for figuring out which engine subsystems are taking the most time
 
  
 
== Coredumps ==
 
== Coredumps ==
Line 141: Line 136:
  
 
=== 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 256 (0 is standard lighting).
+
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
  
The style has to be defined within the QC code, using the `lightstyle` builtin:
+
Note: This comes from the qfusion documentation, not quite sure if implemented the exact same way in FTEQW.
void(float lightstyle, string stylestring, optional vector rgb) lightstyle = #35; /*
 
    Specifies an auto-animating string that specifies the light intensity for entities using that lightstyle.
 
    a is off, z is fully lit. Should be lower case only.
 
    rgb will recolour all lights using that lightstyle. */
 
(snippet taken from fteextensions.qc)
 
  
 
== Server side anti-lag ==
 
== Server side anti-lag ==
Line 168: Line 172:
  
 
FTE has builtin A* support through .way files.
 
FTE has builtin A* support through .way files.
The .way file has to be placed in the data directory in order for the engine to see them.
+
They have to be placed in the same folder as the map in order for the engine to see them.
The first line of the file has to be the number of nodes within the file.
+
The syntax follows the following format:
 
 
The node syntax follows the following format:
 
 
  pos_x pos_y _pos_z radius num_of_links
 
  pos_x pos_y _pos_z radius num_of_links
 
     linked_node_1 path_cost path_flags
 
     linked_node_1 path_cost path_flags
Line 189: Line 191:
 
  followed in reverse order (ie: the first node that must be reached is at index numnodes-1).  
 
  followed in reverse order (ie: the first node that must be reached is at index numnodes-1).  
 
  If no route is available then the callback will be called with no nodes. */
 
  If no route is available then the callback will be called with no nodes. */
 
== Cubemaps ==
 
FTEQW supports cubemaps.
 
By placing entities named '''env_cubemap''' throughout the map, you're giving the engine calculation points. After (re)compiling the map, run the '''mod_findcubemaps''' command in-game.
 
Then, make a q3 shader that looks like:
 
yourmaterialname
 
{
 
  program defaultwall
 
  diffusemap YourTexture.tga
 
  normalmap LumpyBumpy.tga
 
  reflectmask AGreyScaleTextureThatsWhiteForTheReflectiveParts.tga
 
  specularmap YourSpecularReflectionInfoBecauseWhoDoesntWantShinyStuffEverywhere.tga
 
  //fullbrightmap EwwGlowyBitsIsJustBoring.tga
 
}
 
(snippet written by Spoike)
 

Please note that all contributions to Quake Wiki are considered to be released under the GNU Free Documentation License 1.3 or later (see Quake Wiki:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!

To edit this page, please answer the question that appears below (more info):

Cancel | Editing help (opens in new window)