Shell.lvl scripts
Moderator: Moderators
- giftheck
- Droid Pilot Assassin

- Posts: 2218
- Joined: Mon Jan 19, 2009 5:58 pm
- Projects :: Star Wars Battlefront Anniversary
Shell.lvl scripts
Does anybody have or know what's inside the BF1 Shell.lvl script files? I'd like a peek to see what's in there, mainly to see whether it's possible to add eras toEndor, Hoth, Geonosis and Kamino, but also because I'd love to see what else shell.lvl contains to see how exactly it impacts on SWBF, what it does for the game etc.
I hear psych0fred once had the scripts but I wouldn't know if he still had them.
I hear psych0fred once had the scripts but I wouldn't know if he still had them.
- Teancum
- Jedi Admin

- Posts: 11080
- Joined: Wed Sep 07, 2005 11:42 pm
- Projects :: No Mod project currently.
- xbox live or psn: No gamertag set
- Location: Indiana
Re: Shell.lvl scripts
Nope - looked into this awhile back, eras are hard coded.
- giftheck
- Droid Pilot Assassin

- Posts: 2218
- Joined: Mon Jan 19, 2009 5:58 pm
- Projects :: Star Wars Battlefront Anniversary
Re: Shell.lvl scripts
What I meant was adding in Clone Wars to Hoth and Endor, and Galactic Civil War to Geonosis and Kamino. On his site, psych0fred said that would require a shell change.Teancum wrote:Nope - looked into this awhile back, eras are hard coded.
- Teancum
- Jedi Admin

- Posts: 11080
- Joined: Wed Sep 07, 2005 11:42 pm
- Projects :: No Mod project currently.
- xbox live or psn: No gamertag set
- Location: Indiana
Re: Shell.lvl scripts
Ah, gotcha. 
- jdee/barc
- 1st Lieutenant

- Posts: 444
- Joined: Wed Aug 25, 2010 2:47 pm
- Projects :: Battlefront One and a Half
- xbox live or psn: No gamertag set
- Location: Boston
Re: Shell.lvl scripts
I have a way of doing this without editing shell.lvl. It may not be exactly what you want though.
-create fixed versions of the hoth and endor worlds with certaing things like spawnpoints for CW units, objects, and vehicles (like changing the hoth shield generator to be a technounion ship or something and changing spawns for AT-ATs to AT-TEs)
-make CW era playable by making mission maps that use those fixed lvl files.
-release with your mod.
Just an easier way of doing it without editing shell.lvl
-create fixed versions of the hoth and endor worlds with certaing things like spawnpoints for CW units, objects, and vehicles (like changing the hoth shield generator to be a technounion ship or something and changing spawns for AT-ATs to AT-TEs)
-make CW era playable by making mission maps that use those fixed lvl files.
-release with your mod.
Just an easier way of doing it without editing shell.lvl
- giftheck
- Droid Pilot Assassin

- Posts: 2218
- Joined: Mon Jan 19, 2009 5:58 pm
- Projects :: Star Wars Battlefront Anniversary
Re: Shell.lvl scripts
It means making the map list longer with BFE, and Battlefront has an addon map limit. Since Hoth and Endor would be non-canon anyways, I'd keep things the way they are and test the shipped map limit which nobody seems to have done. I'd love to edit the campaign also but I don't know if that is hardcoded or not. That's why I'd love to create a shell.lvl tool so that I can at least see what the scripts for shell.lvl contain myself.jdee/barc wrote:I have a way of doing this without editing shell.lvl. It may not be exactly what you want though.
-create fixed versions of the hoth and endor worlds with certaing things like spawnpoints for CW units, objects, and vehicles (like changing the hoth shield generator to be a technounion ship or something and changing spawns for AT-ATs to AT-TEs)
-make CW era playable by making mission maps that use those fixed lvl files.
-release with your mod.
Just an easier way of doing it without editing shell.lvl
The script segment of shell.req, from psych0fred's site:
Hidden/Spoiler:
- Teancum
- Jedi Admin

- Posts: 11080
- Joined: Wed Sep 07, 2005 11:42 pm
- Projects :: No Mod project currently.
- xbox live or psn: No gamertag set
- Location: Indiana
Re: Shell.lvl scripts
This is the only script I have, but theoretically you can edit it then inject it back into shell.lvl if you know what you're doing. I asked for this a loooong time ago.
missionlist lua:
Also, here's a proper loadscreen tool. I never had time to finish it, but there's a SWBF1 and SWBF2 version in there. You'll have to extract compiled MSH files from a loadscreen level from SWBF1 and do some hex editing and renaming, but you can build custom SWBF1-esque loadscreens. I've never actually gotten around to it, but I know it's possible. SWBF2 can't run the SWBF1 load screens, but there's a tool in there for SWBF2 that allows you to roll through multiple load screens while loading like in the default game.
I'm not officially supporting these. I just don't have time to do so anymore. If anyone who has the time to look into them and write a tutorial I'd appreciate it. I've got basic file structures set up. If anyone who knows what they're doing gets stuck, just let me know and I'll try to help. Newbies need not apply until this is all documented properly.
Loadscreen Tool.rar
missionlist lua:
Hidden/Spoiler:
I'm not officially supporting these. I just don't have time to do so anymore. If anyone who has the time to look into them and write a tutorial I'd appreciate it. I've got basic file structures set up. If anyone who knows what they're doing gets stuck, just let me know and I'll try to help. Newbies need not apply until this is all documented properly.
Loadscreen Tool.rar
- giftheck
- Droid Pilot Assassin

- Posts: 2218
- Joined: Mon Jan 19, 2009 5:58 pm
- Projects :: Star Wars Battlefront Anniversary
Re: Shell.lvl scripts
Cool! I'd assume psych0fred sent you that script, but I'd doubt he'd have any other scripts left. Thanks for the help 
EDIT: BattleBelk said six units was possible by hacking shell.lvl (http://www.gametoast.com/forums/viewtop ... 75#p346975), and psych0fred implied as much. While psych0fred's screens of sixth and seventh units may be from an earlier version I am sure that what I have been told by DarkAngelTBP on DeviantArt and from what psych0fred himself said, that there were six units working, fully functioning, only shortly before the game's release. Of course, it's entirely possible the mod tools patches have removed any code pertaining to sixth units. If it's not possible, I don't really care, I've worked my mod into the five class system anyways. But I'd like to push the utter boundaries of the engine. BattleBelk hasn't been on since September so chances are he's not doing modding anymore. It was a nice thought while it was there though
EDIT: BattleBelk said six units was possible by hacking shell.lvl (http://www.gametoast.com/forums/viewtop ... 75#p346975), and psych0fred implied as much. While psych0fred's screens of sixth and seventh units may be from an earlier version I am sure that what I have been told by DarkAngelTBP on DeviantArt and from what psych0fred himself said, that there were six units working, fully functioning, only shortly before the game's release. Of course, it's entirely possible the mod tools patches have removed any code pertaining to sixth units. If it's not possible, I don't really care, I've worked my mod into the five class system anyways. But I'd like to push the utter boundaries of the engine. BattleBelk hasn't been on since September so chances are he's not doing modding anymore. It was a nice thought while it was there though
- jdee/barc
- 1st Lieutenant

- Posts: 444
- Joined: Wed Aug 25, 2010 2:47 pm
- Projects :: Battlefront One and a Half
- xbox live or psn: No gamertag set
- Location: Boston
Re: Shell.lvl scripts
@Teancum
Do you know any possible ways of injecting this back into shell.lvl? THis is very interesting.
Do you know any possible ways of injecting this back into shell.lvl? THis is very interesting.
- Teancum
- Jedi Admin

- Posts: 11080
- Joined: Wed Sep 07, 2005 11:42 pm
- Projects :: No Mod project currently.
- xbox live or psn: No gamertag set
- Location: Indiana
Re: Shell.lvl scripts
Sure - it's not hard per se. Just compile the single script and do a hex-edit copy/paste, replacing the original file, then update the first 8 bytes of the lvl file to reflect the new file size. I have to do this a LOT with the Xbox mod. I don't have SWBF1 anymore, but if someone wants to update the lua I can compile and inject it into shell.lvl (I'd need the original shell.lvl since I don't have SWBF1). I don't want to do this a ton of times, though -- so if maps and eras are going to be added finish all that up first, then I'll update the shell once all those maps are working as addon maps.
- giftheck
- Droid Pilot Assassin

- Posts: 2218
- Joined: Mon Jan 19, 2009 5:58 pm
- Projects :: Star Wars Battlefront Anniversary
Re: Shell.lvl scripts
Exactly. It's not that different from adding/removing meshes from a msh file, especially since the lvl format is just a container format for the munged files to be compiled into. If you wanted to go one step further and if you really know what you're doing (like BattleBelk did) you could either create a shell remunger by extracting all the munged files, or you could go one further if you really understood the format and create a program that can read, decompile and recompile LVL into its individual munged formats (which I am surprised nobody has done yet)Teancum wrote:Sure - it's not hard per se. Just compile the single script and do a hex-edit copy/paste, replacing the original file, then update the first 8 bytes of the lvl file to reflect the new file size. I have to do this a LOT with the Xbox mod. I don't have SWBF1 anymore, but if someone wants to update the lua I can compile and inject it into shell.lvl (I'd need the original shell.lvl since I don't have SWBF1). I don't want to do this a ton of times, though -- so if maps and eras are going to be added finish all that up first, then I'll update the shell once all those maps are working as addon maps.
