Hosting and domain costs until October 2024 have been generously sponsored by dumptruck_ds. Thank you!

Editing Skybox Support

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 12: Line 12:
  
 
A skybox is loaded using either the "loadsky" console command or directly from the BSP file (by specifying a skybox name in the worldspawn entry).
 
A skybox is loaded using either the "loadsky" console command or directly from the BSP file (by specifying a skybox name in the worldspawn entry).
 
Skybox can also be loaded from an ent file but to do that the ent file has to contain the following text:
 
 
{
 
"classname" "worldspawn"
 
"sky" "foo"
 
}
 
 
Probably that there should be more lines between the braces, but these two lines are a must.
 
 
Call this file "foo.ent" and make sure that this file is in the game directory that is always id1 unless the "-game" command argument is specified.
 
 
When you will play "foo.bsp" look up and you will see the "foo" sky (assuming that you have all the six images files of it in "id1/gfx/env" or "id1/env".
 
  
 
===The "loadsky" Command===
 
===The "loadsky" Command===
Line 60: Line 47:
 
  else
 
  else
 
     localcmd("loadsky bluesky\n"); //I love to see blue sky when I am killing monsters and finding secrets
 
     localcmd("loadsky bluesky\n"); //I love to see blue sky when I am killing monsters and finding secrets
 
With Fteqcc you can also do this instead:
 
 
switch (self.model)
 
{
 
    case "maps/start.bsp": localcmd("loadsky night\n"); break; //I love to see night when I have to choose skill and episode
 
    default: localcmd("loadsky bluesky\n"); break; //I love to see blue sky when I am killing monsters and finding secrets
 
}
 
  
 
Use the "skill" global variable instead of the "self.model" variable if you have at least 4 skies each for Easy, Normal, Hard and Nightmare skills.
 
Use the "skill" global variable instead of the "self.model" variable if you have at least 4 skies each for Easy, Normal, Hard and Nightmare skills.
Line 77: Line 56:
 
  else if (skill == 2) localcmd("loadsky hard\n"); //Load the "hard" sky if I am playing the game on the "Hard" skill
 
  else if (skill == 2) localcmd("loadsky hard\n"); //Load the "hard" sky if I am playing the game on the "Hard" skill
 
  else if (skill == 3) localcmd("loadsky nightmare\n"); //Load the "nightmare" sky if I am playing the game on the "Nightmare" skill
 
  else if (skill == 3) localcmd("loadsky nightmare\n"); //Load the "nightmare" sky if I am playing the game on the "Nightmare" skill
 
With Fteqcc you can also do this instead:
 
 
switch (skill)
 
{
 
    case 0: localcmd("loadsky easy\n"); break; //Load the "easy" sky if I am playing the game on the "Easy" skill
 
    case 1: localcmd("loadsky normal\n"); break; //Load the "normal" sky if I am playing the game on the "Normal" skill
 
    case 2: localcmd("loadsky hard\n"); break; //Load the "hard" sky if I am playing the game on the "Hard" skill
 
    case 3: localcmd("loadsky nightmare\n"); break; //Load the "nightmare" sky if I am playing the game on the "Nightmare" skill
 
}
 
 
Never forget break; at the end after each case because otherwise all below cases until break; will be executed as well and this is an error whose result is a bug in the game!
 
  
 
This is both an excellent and wonderful way to know what is the skill of the Quake game that you are playing without having to manually bring down the console by pressing the tilde key on your keyboard and then type and enter the word "skill".
 
This is both an excellent and wonderful way to know what is the skill of the Quake game that you are playing without having to manually bring down the console by pressing the tilde key on your keyboard and then type and enter the word "skill".
Line 130: Line 97:
 
Another possible option is to change the sky of the Quake level that you want to play '''directly''' by '''directly''' editing the '''bsp''' file of the Quake level, that you want to play, with any working '''hexadecimal''' editor.
 
Another possible option is to change the sky of the Quake level that you want to play '''directly''' by '''directly''' editing the '''bsp''' file of the Quake level, that you want to play, with any working '''hexadecimal''' editor.
  
'''But''' go for this option '''as a last resort only if''' you do'''n't''' have any source files to edit and compile '''at all'''! Because directly editing a bsp file is like directly editing a progs.dat file is like directly editing an executable (exe in short) file is like directly editing a dll file is like directly editing any binary file or byte code that was created by a compiler and this is very well known that editing such files with any hexadecimal editor is very risky and unsafe operation since the language that these files use to communicate with the software that reads them is very hard for a human to understand and this is very hard to achieve the goal this way in general and any little mistake, wrong edit in the file, if you modified in the file any byte that should not be modified to achieve your purpose, this action will instantly make the file '''both unplayable and unusable''' anymore! And undoing your mistakes, to make the file both playable and usable again like before, is impossible if you don't remember what were all the original bytes before you overwritten them with yours!
+
Go for this option as a last resort only if you don't have any source files to edit and compile at all!
 
 
So if you really go for this option and you are about to and going to edit a bsp file, which was created by a wad and map compiler, with your favorite hexadecimal editor then don't forget to '''first''' backup your bsp file by copying it into a backup directory/folder and if you will do any mistake and as a result the modified bsp file is ruined and unplayable anymore then instead of trying to fix it just delete the ruined and unplayable bsp file and then use copy your backup bsp file and try again.
 
 
 
Repeat this process as many times as needed until you find out what has to be done and what not and you have successfully achieved your purpose.
 
 
 
This option is indeed and obviously a lot of trial and error until you find out what bytes you should modify and what bytes should remain unchanged and indeed you will have to spend a lot of time until you find it!
 
  
 
===Unloading a Skybox===
 
===Unloading a Skybox===

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)