You'll need:
Console with ability to run unsigned/dev signed code.
- RGH/Jtag/XDK
Resource files:
- mainmenu.map
- campaign.map
- shared.map
Assembly (newsiest build)
Adjutant
Clean single player map you want to convert
Clean multiplayer map
Step 1) Setting up resource files in Assembly
You can find how to do that HERE
Step 2) Preparing your Campaign map
Open your single player map and search for [mulg]
once found rename to something like this:
multiplayer\multiplayer_globals_old
hit "Save Tag Names"
Step 3) Extracting [MULG]
*this step is very buggy so you may fail multiple times, [matg] has so much meta data that some doesn't extract properly*
To avoid this you could go through the mp's [mulg] tag and null all the references to weapons and vehicles and hit save, But, if your single player map has those vehicles on it already it, it won't be an issue as Assembly wont inject tags that's already existent in the map. But like I said, this step is optional.
Once you located the the multiplayer maps [mulg] right click and extract with raw.
Allow Assembly time to extract (may freeze assembly, just leave it alone)
Once done inject into you campaign map
Allow Assembly time to inject (may freeze assembly, just leave it alone)
Once the tag is in close and reopen the map
Step 4) Extracting [WGTZ]
In your multiplayer map search for [wgtz]. Once found right click on ui\multiplayer and hit extract with raw.
Allow Assembly time to extract (may freeze assembly, just leave it alone)
Once done inject into you campaign map
Allow Assembly time to inject (may freeze assembly, just leave it alone)
Once the tag is in close and reopen the map
Step 5) Injecting Your Tags
With both tags injected navigated to [matg]
search for "Multiplayer Globals"
change the tagref to the newly injected one.
Now do a search for "Multiplayer UI Globals"
add the newly injected [wgtz]
Save.
Again in [matg] go to "Player Representation" go to chunk 2 and fill it out with either masterchief [bipd] and first person models or mp_masterchief [bipd] and first person models
Step 6) [SCNR] Edits
In order for the map to load you need to go to crates and make the count zero.
If your map freezes even after this remove some scenery.
this happens because some single player maps have too much data for the mp object pool.
save.
Go to "Maptype" and make it Multiplayer and change the mapID, note your new mapID down.
[optional] change campaign ID to 0.
Step 7) Setting Spawns
Open up your Clean multiplayer map again and grab the invisible spawn point, extract with raw.
Inject into your single player map. Close and reopen.
Go to [scnr] and go to "Scenery Palette" add a chunk with the block reallocator.
Now go to Scenery and again add a new chunk and give the new chunk the index of the spawn point in the scenery palette.
Make:
"Name Index" - (-1)
"Type" - Scenery
"Parent Name Index" - (-1)
"Unknown" [one above "Multiplayer Data"] - (-1)
"Team" - Neutral
"Attached Name Index" - (-1)
Use Adjutant to grab x,y,z coordinates (recommend having spawns for each bsp, as progressing in the level, when you die you'll might spawn in a de-spawned bsp. or you can just put your spawn in the first one for a quick test of your map)
check either all or the first three sets in "Allowed Zonesets"
save.
or you could just replace a scenery palette index to the spawn and adjust the scenery that uses the index you replaced.
Set 8) Scripts?
You can leave scripts or remove them up to you fam
Set 9) Fixing Your Mapinfo
Open a multiplayer mapinfo give it your single player maps MapID you noted earlier
Change the map filename to whatever your campaign map name is/will be
Change map type to multiplayer save and close.
Errors
if your map freezes black screen this will be an issue with [mulg] or too much meta in your map
restart with a newly extracted [mulg] or remove more from the scenery palette.
If scoreboard crashes: issue with [wgtz] tag.
map loads but you don't spawn: issue with spawn in [scnr]
---------------------------
Once you get it loaded and working you can expand the sandbox palettes
Create backups!
you can add mp_masterchief bipd
you can load all designer zonesets (be careful with this, your map may crash due to not enough memory)
Thanks to Gamecheat and Zedd.
For Reach you might not have to have your campaign map loaded as Multiplayer in order to forge on it.
i'll confirm this later.
any grammar issues? let me know.