Page 1 of 3

Error FS_FILE empty when trying to run a map......

Posted: Wed Jul 21, 2004 11:53 pm
by grb
Hi all,
Any idea what the following error means when I try to load a map, and
MOHAA stops running and displays the following in a standalone
error window (looks much like console mode within a smaller window).

FS_FILE empty


This often happens if for some reason I recompile a map in Radiant
after adding some new brushes and what was the "worldspawn" gets
re-assigned to some new brush. I compile my maps with Mbuilder.

The only way to get the map to work is to reopen it in Radiant, saveas
to some new file. Delate all the original files, resave the new file
to the original.map and recompile it.

I probably have wasted over two hundred hours in the past few weeks
having a perfectly good map not work because somehow the worldspawn
changes from the brush it was originally assigned. This is what causes
the FS_FILE empty message to occure when loading a map in MOHAA.

Thanks for any advice.
George

Posted: Wed Jul 21, 2004 11:58 pm
by blue60007
What's the name of your map? Seems like I saw a solution to this somewhere, but where? Had to do with naming...

Oh about the worldspawn, it is assigned to all brushes and there is only one of them.

Posted: Thu Jul 22, 2004 12:18 am
by grb
Blue6007,
The name of the map has no relevance here. I have experienced this
with quite a few different maps I have worked on. That is the maps are
not public domain.
As far as your second part of answer, not everthing is set to worldspawn.
If I create a brush, then assign it to be a detail, func_group ....whatever,
it is not the CLASSNAME "worldspawn".

Look at it this way .........I have very large maps with thousands of
objects, houses comprised of dozens of parts, all kinds of structures,
rivers, ponds, whatever........................If while in MOHAA Radiant,
I go the the top menu and choose Edit.
Then I choose the subitem Entity Info.

I will see every entity in my map. I only have ONE WORLDSPAWN
entity. Always.

No offense to you in any way.........and thanks for your comments,
but what I asked is how one can force an assigned Entity to always
remain to be the worldspawn, regardless of what new objects are
added to a map, lets say a patch mesh, which typically tries to take on
the "worldspawn" entity. So when I save and compile the map ........
something in the newly compiled bsp file is now different then the
path and min files that typically remain in place once a map is originally
loaded, that is the two files that get created by MOHAA game program
once a new map (Single Player MOHAA Map) is loaded into the game.


Perhaps LTrude (Tom) can help me with this one.

regards,
George

Whoops............I wrote incorrect error message it shoud b

Posted: Thu Jul 22, 2004 1:14 am
by grb
Sorry folks,
The error message I get in the window discribed above when the map
cannot load correctly is:

FS_ReadFile with empty name


The rest of what I wrote hopefully is grammatically correct in
describing the problem I have been experiencing.

Thanks again.
George

Posted: Thu Jul 22, 2004 1:31 am
by bdbodger
worldspawn is any brush not made into an entity with func... or script... .

If you have the FS_ReadFile with empty name the FS is for file system it means you have made a mistake on a file name I belive . Maybe you added a model then moved the pk3 with the model in it so when you ran the game the game could not find the model . Or just a typo somewhere or a space in a file name .

Thanks for reply......

Posted: Thu Jul 22, 2004 2:18 am
by grb
OK.
Think of it this way. I have a map called test_x.
In the map I have an entity that is assigned as worldspawn.
If I add lets say a PREFAB, the worldspawn may get re-assigned to
some element in the PREFAB (I always try to make all things in a PF
detailed to spare myself heartache). OK. After inserting the new
PREFAB, for whatever reason.....................the original entity that
used to be the worldspawn is no longer the case, some element
in the PREFAB that used to be a detailed object, now becomes the
worldspawn entity. If I save the map and compile it, and load it into
the MOHAA, in console mode: map test_x.

I will get the error.
OK. If I go back to Radiant. Load test_x. Save it to (save as) bong,
then go into windows explorer, delete all the test_x files (min,map,viz,bxp etc.),
then while still in Radiant, resave the map back to test_x. Then compile
with Mbuilder. The map will load and run in the game.

I have not tinkered with any config files for the tools nor the game incidentally for well over a year. I just started to see this happen in
the past month or so since I started to make new maps.

Now. Lets say I only add a piece of a brick wall in this map and make
sure it is assigned "detail". Save the map, compile it.........run it.....
I will not see the error message pop up and the map runs OK. That is
why I am harping on the worldspawn entity changes I notice when editing
maps then seeing this particular problem crop up.
I was under the impression that each time MOHAA loads a map it looks to
see the date stamps on each file involved such as min,pth, and bsp and
updates them prior to trying to run the bsp.

I am simply confused. Any further ideas as to what may be happening?
Thanks,
George

Posted: Thu Jul 22, 2004 4:55 am
by bdbodger
Click on any brush you have not made into an entity and press n on the keyboard to bring up the entity window . You will notice that worldspawn is seleted and it's values show in the little window . Now deselect that brush and do the same with a differnt brush . Suprise Suprise the same thing happens . Keep doing that until you understand the there is only 1 worldspawn and it represents all normal brushes that are not entities they are sometimes also refered to as world brushes . A prefab is a saved bit of a map it may contain world brushes and or enitities .

thank you for the further feedback....

Posted: Thu Jul 22, 2004 11:43 pm
by grb
bdbodger,
I understand what you have suggested to do. When I build maps I try
my best to make sure each brush I make starts as a given classname
type such as detail, func_group, func_window,.....blah blah. I routinely
use the "n" key to either reset a given classname type of a given entity
to something different, such as if I do find a few worldspawn entiies due
to sloppy loading of pre-fabs, or the auto-assingment by Radiant when
one generates say a simple mesh, whatever, to re-assign the entity
to lets say detail using the "n key" entity window.
No issue as to what you have indicated.

What I have observed each time the map fails is.......if it works during a
given load into MOHAA ....that I always will see the given single entity
I assigned, such as the "little cylinder made of chauk called big-rub",
shows up in the console as things are getting loaded etc..... and I will
see that the world spawn is set to big-rub.

Now when the map bombs.......I never get to that point in the console
feedback scrolling down the console screen. And if I hafe redirected
the console to a logfile, I do not see any hints as to any errors......
other then the FS_File empty message.

OK. Last night while looking over the map I found out that I had a duplicate worldspawn entity (the little cylinder........I had somehow
made a duplicate of it and never noticed it since the two cylinders,
both being assigned as worldspawn.....where in the same spot.
......
OK, so obviously I deleted one of them. Saved map, compiled it.
I got no error. OK, tried to add some new things, and modify other
entities. Re-compiled. Still works in the game. Since then I have
at least twenty times further modified the map/compiled with no
repeat of the problem.

Ok........ Since I am trying to be complete which tends towards
verbosity..............Last night I found one reference on this site under
the sticky for hints to consider in mapping.............that one person
had this error........FS_ReadFile empty name.........
and the person asked if they person was using any "info_ammobox_mg".
They person replied yes. They where told to delete these.
OK.....there is no "info_ammobox_mg" entity or model BUT there are
obviously "item_ammobox_mg". I had a number of those boxes in my
map. I deleted them all.
Now I don't know if they had anything to do with the problem going away
or if the duplicate cylinder(assigned to worldspawn) might be the problem.
But I have not since last night had the error repeat when loading the map.

If I discover what is/was causing the problem I certainly will share it with
the forum. Sorry for being so verbose, just trying to be accurate in what
has expired regardin this particular error.

Thanks for your help.
George

Posted: Fri Jul 23, 2004 12:26 am
by blue60007
You're right, someone did have that error because of that entity...

The duplicate cylinder probably wasn't the problem...

First off anything that doesn't have different things it can do, it is a world brush, and worldspawn applies to it. Func_groups, detailed brushes, structural brushes, patch meshes, they all are worldspawn, worldspawn does not get assigned to say, func_door, func_window, etc... I'm not sure what your doing with details, but a detailed brush will still have the worldspawn entity. Worldspawn doesn't get 're-assigned' to anything, it is the default of ALL brushes. Don't mess with trying to assign worldspawn to any brushes, if you want to say make a func_window into a regular brush, select it then, selection > ungroup brush. That makes it 'worldspawn'. You don't want worldspawn to show up next to a brush, like a func_door does... Not sure if that would cause any problems or not, it may work perfectly fine, don't know though...

Posted: Fri Jul 23, 2004 12:58 am
by Bjarne BZR
grb: There is something profoundly scary about your description of your way of mapping... You keep saying you assign classnames...
grb wrote:I routinely
use the "n" key to either reset a given classname type of a given entity
to something different, such as if I do find a few worldspawn entiies due
to sloppy loading of pre-fabs, or the auto-assingment by Radiant when
one generates say a simple mesh, whatever, to re-assign the entity
to lets say detail using the "n key" entity window.
So do you change the value of the classname key to a different value? :shock:
I really hope I missunderstood you, because this is a BAD thing. And your obsession with worldspawn seems not very healthy as well... any regular brush you draw in Radiant will ( and should! ) have classname worldspawn, there is no way of just having one brush "assigned" to worldspawn... you never assign anything to worldspawn, ever ( I'm talking about editing in radiant here, as soon as you start editing maps in notepad, you may say there is only one worldspawn... containing all brushes without an assigned class ).

If you manually assign an entity to have classname worldspawn, you will suddenly have the real worldspawn plus a fake one (that is probably f**d up)... and the bad results of this will not show up until you load the map next time...

So I hope I understood you wrong when I interpret your posts as you manually changing the name of the class in the Entity dialog window ( the 'n' window)... If you DO manually change the name of the class, you are in deeeeep trouble. Please say I misunderstood you...

thank you all for trying to help me.......

Posted: Fri Jul 23, 2004 2:08 am
by grb
Ok,
I understand the FACT THAT EVERY BRUSH STARTS OFF AS A WORLD
SPAWN. That is if one just draws a brush and applies a texture to it
for instance, it will be worldspawn.

What I was saying was:
If I right click, I get a the class type assignment window pops up. Ok. I
select "detail". Lets say I build a bunch of walls using this proceedure.
And as I create a new brush and then assign it as a "detail", I also assign
a targetname to it. Perhaps big-rub. Whatever. Ok, so I have built some
new structure in the main map.

Now.....while I am building a structure (house for instance), in the prefab,
again, I assign each brush as a detail and perhaps assign a targetname to
the parts.

OK. Then I open up the main map, load the prefab. I will find
that if I go to the main menu, select Edit, the Entity Info
then select Edit/Entity Info in the main menu.......
and select worldspawn:

I will often find that one of the brushes that I had made a detailed brush
in the prefab now is assigned as worldspawn.

So......................as I was experiencing the error FS_ReadFile with empty
name................. I somehow connected that since I no longer would
see the original cylinder (that would show up as the worldspawn) when
querying the Entity Info window items..................lead me to believe
the problem must somehow be connected to an entity that was the worldspawn, now being changed to some other brush.

Obviously I do not understand the basic fundamental structure of how the
engine operates, and went off on some strange thougth train ....

OK.
YES based on what you have read above so far, if my grammer was
sufficient somewhat to explain the reasons I have reacted as I have
regarding trying only to have one entity in the whole map assigned as
worldspawn. I DO WHILE IN THE WINDOW (N KEY) RE-ASSIGN
worldspawn to lets say detail...................IF THAT PARTICULAR
entity was originally created as a detail. That is the only reason I do this!
I could ask.........
Why would a brush that I make as a detail ever show up as a worldspawn as the instead as the classname detail that it was created as?

This is why I have been probably going of the deep end. I thought somehow this might be causing the problem of a map that compiles with
no errors would show the FS_ReadFile with empty name......when loading
it into the game. Darn I am not trying to be confusing but am trying me
best to explain what I steps I take and what has started to happen after
some two plus years of on and off mapping for MOHAA.

However.............I believe every word you have said. One should never
assign classnames as I have done. And this is perhaps the very reason this screwy error message has started to pop up. Until about three weeks
ago, I never saw the FS....blah blah error pop up when loading a map into
the game.
So no you did not misunderstand me. But perhaps you can see why I
went off on this tangent, thinking that if I change the worldspawn to be
only the original cylinder, save the map to a new map name. Open the
new map, saveas the original name, compile it, load the map into the
game..............bingo the error would not appear. So I thought I was
fixing some fundamental problem that perhaps Radiant was doing to my
maps when I loaded my prefabs and chunks of prefabs I built up from
the original stock maps.

So whether this communication leads to a fix .....I at least now I
know I should never go into the Entity window (n key) and re-assign
what should be a classname detail.............that somehow became a
classname worldspawn. But then will the entity that somehow, nothing
I did to it while editing the map, change from a detail classname into
a classname worldspawn still contain the attributes of classname detail?
If I create a brush with a classname of detail, then it should always stay a detail right?
Lastly, again, I have not touched the config files etc., for Radiant and
Mbuilder for at least a year. Of course I change bsp, vis, options etc.,
while in Mbuilder during phases of building a new map.

take care guys and thanks enough to at least try to follow this madness!
George

Posted: Fri Jul 23, 2004 4:29 am
by bdbodger
I didn't read all of your last post but I think one problem you may be haveing is assigning a targetname to a brush without first makeing that brush into a script_object or some other entity func_door etc . If you do that then you will accidenally assign a targetname to worldspawn . If you did delete those keys from worldspawn that do not belong there and assign them to the right thing your script_object for example . This is a mistake some people make when they forget to make the brushes an entity before!! they assign values to it .

Re: thank you all for trying to help me.......

Posted: Fri Jul 23, 2004 9:36 am
by Bjarne BZR
grb: I hope you dont take our questions as us beeing mean, we just sense there is something very strange about how you map and would like to help you fix it...
grb wrote:Ok,
I understand the FACT THAT EVERY BRUSH STARTS OFF AS A WORLD
SPAWN. That is if one just draws a brush and applies a texture to it
for instance, it will be worldspawn.
Good.
grb wrote:What I was saying was:
If I right click, I get a the class type assignment window pops up. Ok. I
select "detail". Lets say I build a bunch of walls using this proceedure.
And as I create a new brush and then assign it as a "detail"
No, its not a class assignment window ( even if you can assign a class there) and making a drush detail does not assign it a new class, it is still in the wordspawn class.
grb wrote: , I also assign
a targetname to it. Perhaps big-rub. Whatever. Ok, so I have built some
new structure in the main map.
OK, now you have done something bad. As this brush is still worldspawn, you have now assigned a targetname to worldspawn. This is at best useless, and at worst dangerous.
grb wrote:Now.....while I am building a structure (house for instance), in the prefab,
again, I assign each brush as a detail and perhaps assign a targetname to
the parts.
Targename assigning to worldspawn will happen here.
grb wrote:OK. Then I open up the main map, load the prefab. I will find
that if I go to the main menu, select Edit, the Entity Info
then select Edit/Entity Info in the main menu.......
and select worldspawn:

I will often find that one of the brushes that I had made a detailed brush
in the prefab now is assigned as worldspawn.
Yes: you probably assigned this classname manually.
grb wrote:OK.
YES based on what you have read above so far, if my grammer was
sufficient somewhat to explain the reasons I have reacted as I have
regarding trying only to have one entity in the whole map assigned as
worldspawn. I DO WHILE IN THE WINDOW (N KEY) RE-ASSIGN
worldspawn to lets say detail...................IF THAT PARTICULAR
entity was originally created as a detail. That is the only reason I do this!
I could ask.........
Why would a brush that I make as a detail ever show up as a worldspawn as the instead as the classname detail that it was created as?
Your manual assigning of classname caused this.
grb wrote:However.............I believe every word you have said. One should never
assign classnames as I have done. And this is perhaps the very reason this screwy error message has started to pop up. Until about three weeks
ago, I never saw the FS....blah blah error pop up when loading a map into
the game.
So no you did not misunderstand me. But perhaps you can see why I
went off on this tangent, thinking that if I change the worldspawn to be
only the original cylinder, save the map to a new map name. Open the
new map, saveas the original name, compile it, load the map into the
game..............bingo the error would not appear. So I thought I was
fixing some fundamental problem that perhaps Radiant was doing to my
maps when I loaded my prefabs and chunks of prefabs I built up from
the original stock maps.
Yes, I think your manual editing of classnames is the villain here.

So whether this communication leads to a fix .....I at least now I
know I should never go into the Entity window (n key) and re-assign
what should be a classname detail.............that somehow became a
classname worldspawn.[/quote]
Good.
grb wrote:But then will the entity that somehow, nothing
I did to it while editing the map, change from a detail classname into
a classname worldspawn still contain the attributes of classname detail?
If I create a brush with a classname of detail, then it should always stay a detail right?
No! Detail has nothing to do with the classname. Setting a brush to detail will just make it green in the map window of radiant, and you can filter out all details by pressing CTRL+d.

OK... I hope that told you what you are doing wrong, if not ask again.

bdbodger and Bjarne....thanks once again......

Posted: Fri Jul 23, 2004 5:33 pm
by grb
Ok,
Writing these long communications, can often become brutal for the
person trying to advise the other. I think at this point, I have a
good idea as what not to do regarding fiddling around with "forced
worldspawn" on some entity. And Bjarne I most certainly do not
take any offense in any way to whatever you say. I have help
many people in past concerning Linux, UNIX, programming issues etc.,
via. phone/email. I realize the mechanisms involved in help desk
processes etc.. I am glad you are willing to bear up to my verbosity.

However I guess I am a bit confused.

If I right click (2-but-mouse), in main window, then choose detail for
the brush, apply a texture, then ESC. Then select the object and hit
the "n key". I will find that it shows:
classname detail

So when you wrote to me:
"No! Detail has nothing to do with the classname. Setting a brush to detail will just make it green in the map window of radiant, and you can filter out all details by pressing CTRL+d."

I simply do not understand the conotation of your statement.
As far as I can see "detail" is one of the available classnames to assign
to a brush.

In the same previous post I made it clear I assigned brushes as "detail"
when I first created them in a prefab.
So while in the Radiant creating the prefab, If I select any given object
I created as detail, then do a "n key", I will find that the classname
is detail.

OK, I save the prefab (of course, with everything being selected I want to
save as the prefab).
Then I load my main map into Radiant.
Load the prefab.


Ok, now if I go to main menu, select Edit/Entity Info window:
Click on the worldspawn in the main tree, then select it.

Then do a "n key".

---------- I will see one of those prefab brushes that originally contained
a classname of "detail", when selected and queried using the "n key"
window, NOW SHOW UP WITH A CLASSNAME "worldspawn", not
detail.
As you can see, I never in-advertantly force a classname on the object.
When it is saved in the pre-fab, it has a classname of "detail".
When the object is loaded in main map (via load prefab) procedure,
I find the object changes from "detail" to "worldspawn" IN the
Entity Window (n key).

Why?

If this is getting out of hand. Please do not feel obligated to repond.
I have spent many hours typing huge responses with high technical
jargon to try to straighten someone out on some issue. It can become
a royal pain in the @@@. Obviously I do not understand much of how
the map editor works nor how the engine is structured, so it can lead
to stupid questions with someone wasting a lot of their time to try to
lend a hand, with little success, due to the receipant's ignorance.
Operating systems are easier to understand then this stuff!

take care,
George

Posted: Fri Jul 23, 2004 7:11 pm
by M&M
well, all brushes ARE world spawn ,wether detail or not . Detail brushes are used (if used correctly) to make the fps on the map better and speeding up the VIS process of the compile .
there are a few tuts on that if u want to know more ,check the tut seciton here or on bjarne's site (rjukan project) .in short ,u use the detail funciton to turn brushes that dont block the visibility of a player into detail to improve FPS & compiling speed . (e.g like ladders ,small brushes ...)

oh ,btw there is a "quote" button
So when you wrote to me:
"No! Detail has nothing to do with the classname. Setting a brush to detail will just make it green in the map window of radiant, and you can filter out all details by pressing CTRL+d."
move the mouse over it to see how to use it .

i dont know much about class names or why u would need to change them in the 1st place . but i thought i should help with what i know :wink: