|
Poll
I downloaded the ETQW demo and.... ...I'm too busy playing for polls. 14% ...it's awesome. 43% ...it's okay, I expected better. 14% ...I'm lost in the valley, anyone have a map? 0% ...my machine won't run it. :-( 29% Total votes: 7
Who's online
There are currently 0 users and 37 guests online.
|
|
Welcome to RUST | Gamedesign.net
|
Common Editing Errors FAQ
Submitted by Gard on Fri, 2003-11-07 22:44.
Common Editing Errors - FAQ
By Richard Neff, David Hyde & Mad Dog
This is an attempt to answer some of the more common errors that occur in Quake 2.
This is not meant to be a comprehensive list! There may be plenty of errors that
are not covered - this is merely an attempt to document the causes/solutions of
the more frequent ones. Additionally, you may want to visit the
Q2 Errors Tutorial
here at Rust.
Press Ctrl+F to search for a specific word or phrase (Assuming your browser
supports the find command.)
- Denotes that MapSpy can be used to
help troubleshoot or fix this error message.
- Bounds out of range
This error may be caused by one of two conditions. The obvious one is a brush
that has one or more vertices outside the +/- 4096 limits. The not-so-obvious
one is a brush that is missing a plane (which might happen if you manually
edit your .map file, and also is a possible result of brush subtraction operations).
An oft-misunderstood fact is how brushes are constructed for the Q2 engine...
the x,y,z triplets in your .map file are NOT necessarily brush vertices - they
are simply points that define the plane. Brushes are constructed by starting
with an infinite solid and then removing everything on one side of the planes
that define the brush. This, coincidentally, is why you cannot have a concave
brush (think about it). In the case of a cube with the top face missing, the
brush will be infinitely tall (infinity in Q2 being 8192, of course)... which
leads to the bounds out of range error.
- Duplicate Plane
This error was likely caused by an edge manipulation where you pulled one edge
toward the center of a brush such that two faces now lie on the same plane - for
example turning a cube into a wedge. It could also be the result of a brush
subtraction operation.
- FloatPlane: bad normal
Collinear points are usually to blame for this error. In many cases, 2 points are
identical. This error is sometimes caused by faulty edge manipulation: pulling one
edge of a face until it lines up with another edge of the same face, for example.
- Microbrush
Microbrushes have a volume less than a 1x1x1 unit cube. Microbrushes are
frequently generated by complex brush subtraction operations, but might also be
generated by editors with floating-point conversion problems. In the first case, you
will generally be better off building complex objects manually rather than using
brush subtraction. In the second case, you can prevent this error by insuring that
brush vertices lie on grid units. Microbrushes are frequently drawn incorrectly in
the game, so you will likely want to find and delete this brush.
- Mirrored Plane
This error indicates that a brush has no thickness in one or more directions, i.e.
opposing faces of the brush lie on the same plane. This error may be generated by
building a brush less than 1 unit thick - one face's coordinate gets rounded up,
and the opposite face's coordinate gets rounded down. This situation can be
avoided by insuring that a brush's vertices lie on grid units.
- Mixed Face Contents
Content properties must be identical for all faces of a brush. You can,
however, have different surface properties.
- No visible sides on brush
This error indicates that the bounding box coordinates for the brush are
completely outside the +/-4096 limits in one or more directions. Note that
this error may be generated by a faulty bounding box being calculated by
qbsp3. In this case, one or more faces of the brush are fouled up to the
extent that you will probably be better off deleting the brush and
re-creating it.
- Origin brushes not allowed in world
This error is frequently caused by attempting (but failing) to add an
origin brush to a func_door_rotating or func_rotating. Methods for grouping
origin brushes with entities differ with the various editors. Consult your
editor's documentation.
- Plane with no normal
This error generally indicates that the points defining a plane are
collinear or that 2 points are identical. Find and delete this
brush.
Still can't find the QBSP error you're looking for? Visit the Q2
QBSP Errors tutorial here at Rust.
QVIS Errors
- Leafportals saw into leaf
It's not so simple as finding the single offending "leafportal" brush. As
your map increases in size or simply changes brushes that generate no errors
can become causes of leafportal errors. Worse is that subsequent compiles of
the unchanged map may produce more or fewer leafportal errors, and this lack
of consistency makes finding the error even more maddening.
Often the worst offenders are brushes with many faces sharing the same vertex (like a
spike or a skewed brush with a mitered corner).
Advice often given is to "simplify". While this is useful advice up to a point I suppose, tracking
down specific troublesome brushes as they relate to their environment (your
map) is the real key (good luck). If you do find them, I've recently
discovered that making them and the brushes they adjoin detail brushes may
correct the problem, as will making them brush entities like func_walls.
(Since this is a vis error, this makes sense when you think about
it).
Still can't find the QVIS error you're looking for? Visit the Q2
QVIS Errors tutorial here at Rust.
QRAD Errors
- face with too many light styles (x y z)
There are too many different dynamic light styles, such as flashing
lights, that hit a single face of a brush. The limit is 4 light styles
that can hit a face. The best solution is to reduce the number of
lights in the area or spread them out further. The coordinates tell you
which brush face has caused the problem, which tells you indirectly where
the problem lights are. Note that this error may be
associated with a target_lightramp.
Still can't find the QRAD error you're looking for? Visit the Q2
QRAD Errors tutorial here at Rust.
Startup and Runtime Errors
- Missing texture
A custom texture was used and it isn't in the gamedir/textures dir.
Remember in q2 textures are not included in .bsp files, if you use custom
textures, include the .wals in your zip with install instructions, or better
yet, distribute as a .pak with a maps/mymap.bsp and a
textures/mytexture.wal.
- CDAudio: Invalid track 1 specified
The CD track ("sounds" key in worldspawn entity) must be 2 through 11 to
match the audio tracks on the Q2 CD-ROM. (Track 1 is the Quake 2
installation files.)
- No music plays in the map
Add the "sounds" key in the worldspawn entity and specify a CD track
number, 2 through 11.
- No spawn function for xxxx
Typically caused by not specifying the proper +set game setting.
The entity can't appear properly since the proper entity information isn't
available with the default Quake 2 game. Run the game with the proper
+set game XXXX parameter.
- areaportals>=numareaportals (when opening a door; bombs to console)
Since areaportals affect vis, you must do a full bsp and some sort of vis
after changing them, NOT just a bsp -onlyents. Additionally, can be caused
by a bad areaportal - if you get an areaportal message during compilation,
you may see this error in the game.
- Bad surface extents
This error might occur on maps compiled with the -chop option for qbsp3,
with chop values greater than the default 240. This error is more likely to
occur while using software rendering than GL. This error is seen at the
console when attempting to load the map. The map crashes when it occurs. If
you have not used the -chop option with a chop value
greater than 240, try using -chop with values smaller than 240. When you
find a value that works, increase the value until the error occurs again,
then back off of that value slightly.
- Com_sprintf: overflow of X in 32
The message field in the worldspawn entity (used as the title of your
map) contains too many characters. The maximum length of this field to
prevent this error is 22 characters. This error is generally harmless, but
note that worldspawn messages longer than 28 characters will not fit across
the width of the F1 Help computer.
- connected teleport path_corners
You have two or more sequential path_corners which both have the teleport
spawnflag set.
- couldn't find destination <target>
This error results from a missing, inhibited, or wrongly-named
misc_teleporter_dest.
- couldn't find spawn point
The map does not have an info_player_start (for Single Player mode),
info_player_deathmatch entity (for Deathmatch mode), or info_player_team1
and info_player_team2 (for CTF mode.)
- droptofloor: [item] startsolid at (x y z)
All Quake 2 models have an associated bounding box that cannot be
embedded in a world brush. For example, all weapon, ammo, item, and key
entities have a 32x32x32 bounding box centered at the origin of that entity,
so these items must be placed with their origin at least 16 units away from
the surface of any world brush.
- ED_Alloc: no free edicts
There are too many entities or active objects (flying bullets,
explosions, debris, lasers, etc.) in your map.
- elevator used with no pathtarget by func_button at ( x y z )
Entities which target trigger_elevators (normally func_buttons) must also
use the pathtarget field to specify which path_corner the elevator is to
travel to when the elevator is triggered.
- <entity> without a target
Many entities (e.g. func_train) require a target to function
properly.
- Entity used itself
You have an entity which has the same value for its target and
targetname. If it is caused to trigger its target, it tries to trigger
itself. This error is seen on the screen during gameplay.
- ERROR: Index Overflow
There are too many unique models or too many unique sounds in your
map. You cannot have more than 256 unique models or 256 unique sounds
in a map. Every brush model (e.g. func_door, trigger_once) counts as a
unique model. For more information see Error: Index Overflow (and
Other Horrible Nasty Problems) SOLVED.
- [classname] at (x y z) has invalid spawnflags set
Self-explanatory. This error will not cause any runtime problems,
but may indicate that you meant to set a particular spawnflag but typed in a
wrong value instead.
- func_timer at ( x y z ) has random >= wait
Self-explanatory. In this case the game will override the random value
and use "wait" - FRAMETIME (0.01 seconds).
- func_train without a target
Func_trains must target a path_corner
- func_wall START_ON without TOGGLE
This is a nag error - the game will force the TOGGLE spawnflag in this
case, and the func_wall will function properly.
- <entity> at ( x y z ) has invalid spawnflags set
Self-explanatory. If you consistently get this error, it is possible that
your editor's entity definition file(s) are fouled up.
- item <item> not found for trigger_key at ( x y z )
The trigger_key has an invalid item field. Though the item is normally a
key entity, you can also use ammo, weapons, and any item entity other than
health. You might, for example, take weapons away from a player by setting
the item field to a weapon entity.
- <key> is not a field
Your map contains an invalid key-value pair. Either your editor has
incorrectly inserted an invalid key (that may be valid in another game) or
you have manually typed in an invalid key.
- PF_SetModel: NULL
An entity that requires one or more brushes to function correctly does
not have an associated brush. The usual suspects in this case are trigger
brushes (trigger_once, trigger_multiple, etc.). Download MapSpy to help track
down the offending entity.
- G_PickTarget: target [name] not found
A point_combat entity may only be used once. You cannot have multiple
monsters combattarget the same point_combat.
- Map does not have an empty leaf
This error is caused by a bug in Quake2, and usually occurs when all
leafs of a map contain clip brushes. This error is generally only produced
in small test maps with few leafs. You can avoid this error by moving clip
brushes around, or download a different version of qbsp3, which
automatically generates an empty leaf if one is not found. This error is
seen on the console when loading the map, and the map crashes when it
occurs.
- <monster> at ( x y z ) has bad item <item>
Monsters (including turret_drivers) can drop ammo, weapons, keys, and any
item entity other than health.
- <monster> ( x y z ) has a bad combattarget <combattarget>:
<classname> at ( x y z )
Combattargets must be point_combat.
- <monster> at ( x y z ) has target with mixed types.
This error occurs if either 1) monster has a target that is NOT a
point_combat and also has a combattarget, or 2) monster has a target that IS
a point_combat AND a target that is NOT a point_combat.
- <monster> can't find target <target> at ( x y z )
The monster targets an entity that does not exist.
- Ran out of faces for bmodel
A large func_water entity is filling an area with a very complex solid
surface. A solution is to break the func_water up into smaller entities,
start the func_water with the more complex brushes already breaking the
surface, or remove some of the more complex brushes in its
path.
- SZ_GetSpace: Overflow
The game engine can see too many entities. If you have not already run
vis, try a -fast vis. This will usually fix the problem. If it does not, you
may be able to solve the problem with a full vis, but this may only
obscure a problem that might occur during play (rather than when the level
first loads). For example, a full vis may allow you to start the map, but
then you might get this error when firing rockets or grenades at a squad of
gunners. If a full vis does not solve the problem, you have several
choices:
- Eliminate entities
- Use func_areaportals in your doors
- Add vis-blocking architecture, i.e. 90 degree bends in hallways,
doughnut hallways, etc.
Special case: You may
sometimes get this error message when tracking down leaks using LeakHunter,
even though your level contains very few entities. In this case, the
pointfile that contains leak information is too large - LeakHunter generates
a laser for each segment of the pointfile, and since all segments will be
visible to the engine, too many lasers cause this crash. You can eliminate
this problem by editing your pointfile with a text editor and deleting
points. The pointfile starts in the void and works its way into your map,
ending at an entity. You should be able to delete all points after, for
example, the 20th point and still have sufficient information in the
pointfile to find the leak. Note that LeakHunter will always spawn the
player at the last point in the pointfile, so you will not have a problem
finding the starting laser segment. Note that having very few entities in
your map (so the path from an entity to a leak is longer) usually generates
large pointfiles. As an alternative to deleting points in the pointfile, you
can temporarily add several light entities to your map and re-compile. This
should result in a much smaller pointfile that will not cause the
SZ_GetSpace Overflow error with LeakHunter.
- target_help with no message at ( x y z )
Self-explanatory. Target_help must have a message field (otherwise what's
the point?)
- target_lightramp has bad ramp (<ramp>)
The message field of target_lightramp must be 2 and only 2 characters,
and both characters must be lowercase letters. The first letter specifies
the starting lightlevel; 2nd letter specifies the ending lightlevel. a is
darkest; z is brightest. For example "az" would ramp from dark to bright and
"za" from bright to dark.
- target_lightramp target <target> (<classname> at ( x
y z )) is not a light.
Target_lightramps may only target light entities. This prohibition
includes light_mine1 and light_mine2.
- teleporter without a target at ( x y z )
Misc_teleporter should target a misc_teleporter_dest. With no target, the
misc_teleporter will not appear in the game.
- train_find: target <target> not found
There is no entity (should be a path_corner) whose targetname matches the
target field of the func_train.
- trigger_elevator at ( x y z ) target <target> is not a train.
As implied, trigger_elevators must target a func_train.
- trigger_elevator at ( x y z ) unable to find target <target>
The target of the trigger_elevator (which should be a func_train) does
not exist.
- Quake 2 simply crashes without an error
Major causes for this include:
- Worldcraft putting animated textures in UPPERCASE. Fix using
MapSpy.
- Lack of a Worldspawn entity.
- A VERY low amount of space for a swapfile while loading a large map.
- Spawning many entities simultaneously.
RUST | Gamedesign.net is your source for all the latest game-editing news and tutorials. If you are seeing this message, this means that you are using a browser that does not support CSS. Please upgrade your browser and enjoy your stay at RUST and if you have any questions, comments, or suggestions, please contact a site administrator.
|
|
|
|
|
|