Content: Slate Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate Marble
Background: Slate Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate Marble
Pattern: Blank Waves Notes Sharp Wood Rockface Leather Honey Vertical Triangles
Welcome to Xbox Chaos: Modding Evolved

Register now to gain access to all of our features. Once registered and logged in, you will be able to contribute to this site by submitting your own content or replying to existing content. You'll be able to customize your profile, receive reputation points as a reward for submitting content, while also communicating with other members via your own private inbox, plus much more! This message will be removed once you have signed in.

Lord Zedd

.map Modding - Getting Started

9 posts in this topic

So you wanna mod, huh? Well here is where you can do just that. I'll try to cover as much basics as I can, and all I ask in return is a willingness to learn.

 

I also ask that you not be a jerk. Myself and others worked hard writing this for XboxChaos and XboxChaos only. If you want to share then please LINK to this thread rather than copy and paste. Thank you.

 

If you want something covered that currently isn't feel free to PM myself and I'll see what I can do.

 

Table Of Contents:

General Modded Xbox Information [This Post]

Modded XEXs

Assembly

Patching

Troubleshooting

General Modding

Tag Injection

.campaign Editing

Removing Barriers

 

1. Modded Consoles

First off, a modded console is required to do anything involving .maps and the like. Unlike the original Xbox there is not a "softmod" for 360; you must open your 360 and install hardware. Alternatively you can just buy one from large forums from people with high feedback or reputation. Craigslist may also be a potential option. eBay isn't going to happen because modded consoles typically violate their TOS.

 

A modded console is often referred to as a "JTAG" or "RGH", named after the specific exploit behind it. For Halo modding purposes they are interchangeable with eachother.

 

-JTAG was the "original" mod in a sense, and has long been patched by dashboard updates. If your Xbox is old and has a dashboard version of or below "7371" then you will be able to JTAG it. RROD issues aside, JTAGs are the most reliable with instant boot times and minimal hardware installation.

 

-RGH is the newer and more current exploit and works on any dashboard version and any hardware version (Fat and Slim), the its only downside being slower boot times by default, requiring tinkering to boot faster.

 

The purpose of these mods is to exploit the 360 on a hardware level to allow a modified dashboard and NAND to load. Basically.

 

If you want to learn more/learn how to mod your console and know how to solder, I'll leave that to you and Google.

 

2. Modded Dashboards

On top of the hardware, there are also a couple modified dashboards out there.

 

FreeBoot is the standard, and is a modified version of whatever retail dashboard/kernel you choose. Requires Dashlaunch to be installed with the XBDM plugin in order to poke with Assembly/other tools.

 

RGLoader is a modified XDK kernel. If your goal is plain modding you probably do not need RGLoader. Being a XDK kernel it comes with the official XBDM which includes more debugging features for development and research. Protip: The dev launcher reads xexs from "HDD:\DEVKIT" or as mounted, "DEVKIT:\".

RGLoader Note: The latest version right now is v400, which is unofficial but works good if you disable "HVPEEKPOKE" and "NOMEMPROT", maybe "NOSHADOWBOOT" as well.

 

 

3. Dashlaunch

So with FreeBoot, Dashlaunch needs to be installed. Dashlaunch modifies your NAND slightly to refer to a launch.ini file on the HDD, where various settings and paths are defined. It will allow you to run games or homebrew such as FreeStyleDash or XEXMenu at startup or via hotkeys. It can also define plugins, where you would add a path to XBDM.

plugin1 = Hdd:\xbdm.xex

(refer to the top of launch.ini for other paths)

 

In addition, while the "contpatch" option sounds really nifty, it is actually fairly buggy and will mess with modded .maps. So please disable it.

contpatch = false

4. XBDM

Stands for "XBox Debug Manager". Allows for various functions, debugging and otherwise. On a Dev kernel, setup is automatic and the console name is set on first boot.

 

For the retail dashlaunch plugin, an xbdm.ini should be created in the same location as xbdm.xex. This file sets the name and "color". I believe the default name is "jtag" but you can make it whatever you want with a text editor. This is your console name for Xbox Neighborhood.

dbgname name="jtag"

You can choose from the following colors if you want:

blackgraybluebluewhitenosidecar

5. Xbox Neighborhood

To make use of XBDM, the official Xbox 360 SDK must be installed to your computer. No link will be provided here because that would be illegal, so all I can say is Google it or check "certain" sites.

 

Xbox Neighborhood is an extension of Windows that allows you to copy files and run executables remotely, while also allowing your PC to communicate with your Xbox via Assembly/other tools in order to poke.

 

After installing Neighborhood, you need to add your console. Open Neighborhood and click Add Xbox 360. A dialog will appear. Click next and you should see the following: (Picture provided by deadcanadian)

 

8LiQVrm.jpg

 

You can either type the console name or the IP address of your Xbox. Enter it then press Next. It should find your console and after a couple more Nexts the dialog should disappear and your console will be added. (Your console must be running and connected to your router/PC for Neighborhood to find it.)

 

Xbox Neighborhood is not perfect, however, and can be prone to hang/crash with certain operations. On Windows 7 and above however there is a folder setting hidden away that will reduce the impact of these issues. In an explorer window (open a folder), hit Alt to temporarily show the menu bar. Open Tools and choose Folder Options. Click the View tab and scroll down and tick the following option:

EYLW07U.png

 

Now, when you run into a hang or crash and manage to kill the window, it won't take the entire explorer.exe with it, only a copy of it.

 

6. FTP

As mentioned, Neighborhood isn't perfect. It fares well with Halo usually but other games, specifically ones with a lot of files in a single folder, using it can be a headache. You may also prefer to go old school, whatever reason, here is how you would set up FTP to transfer files.

 

First you need an application that establishes FTP. Off the top of my head, XEXMenu and FreeStyleDash (may be disabled by default in newer versions) can do this.

 

You also need an FTP program on your PC, common ones include FireFTP, a Firefox Extension (Free) and FlashFXP (Not Free). Feel free to PM me other ones if you'd like. Setup is gonna depend on your application, but for the settings, the IP Address should be displayed by XEXMenu/FSD, and the username/password should both be "xbox". So something like this: (This is FlashFXP)

JJ7PRUn.png

 

With the right settings your application should connect and you will be free to navigate to whatever folder to copy/manage your files.

 

7. Xbox Live

Yeah, no. It is possible to connect to XBL with a modded console but you will NOT find any help on this site. To do so is extremely selfish and only ruins the fun of everyone else involved. If you are only in it to go online then you should find another hobby, perhaps get a psychiatrist to help you deal with whatever bullying you endured in school to make you want to bully people in an online game.

Share this post


Link to post
Share on other sites

8. Modded Executables

To mod Halo .maps, a modded executable is also required. Xbox 360 Executables have the extension XEX, and are usually referred to as such. A modded executable removes signature and hash checks among other things/features to aid in modding. Because distributing the XEXs publicly would be illegal, the mods come in the form of PPF patches created by myself. Here are quick links to their download pages:

 

Halo 3 Beta - http://www.xboxchaos.com/files/file/82-halo-3-beta-unlock-ppf/
Halo 3 Epsilon - http://www.xboxchaos.com/files/file/81-halo-3-epsilon-unlock-ppf/
Halo 3 - http://www.xboxchaos.com/files/file/113-halo-3-ultimate-xex-ppf-patches/
Halo 3 ODST - http://www.xboxchaos.com/files/file/114-halo-3-odst-ultimate-xex-ppf-patch/
Reach Beta - http://www.xboxchaos.com/files/file/80-halo-reach-beta-unlock-xex-ppf-patches/
Reach - http://www.xboxchaos.com/files/file/60-halo-reach-blue-flames-xex-ppf-patches/
Halo 4 - http://www.xboxchaos.com/files/file/88-halo-4-checks-removed-and-unlock-all-xex-ppfs-nontu-and-tu7/

 

8.1. Applying XEX PPF Patches (nonTU version)

While the downloads come with readmes, I will outline the process:

 

Extract the contents of the archive to your desktop, which will consist of a single folder with the abbreviated name of the game that has goodies inside it.

 

Obtain a clean default.xex from the disc/local installation of the game of your choice. Chances are the file will be set to read-only, so right click it, choose "Properties", and uncheck the box next to "read-only". Click OK to get rid of the properties popup.

 

Copy the default.xex into the extracted folder.

 

Run start.bat. Be sure to read everything that appears and hit any key.

 

Some more text will appear, so be sure to read it. Make sure no errors have occurred. You should see "Successfully wrote altered xex to topatch.xex" if all went well.

 

What that did was apply to TU to your default.xex and output to a new file named topatch.xex. Your original xex was then renamed to default.xex.bak for safe keeping.

 

With that done and verification that there is indeed a topatch.xex in the folder now, hit any key.

 

More will happen, be sure to read it, looking specifically "Patching ... Successful." and "Successfully wrote altered xex to" (the final xex name will depend on the game/TU).

 

Verify no errors once again and if so then you can press any key for the final time to close the window.

 

Copy the only final xex file to your Xbox and enjoy!

 

8.2. Applying XEX PPF Patches (TU version)

While the downloads come with readmes, I will outline the process:

 

Extract the contents of the archive to your desktop, which will consist of a single folder with the abbreviated name of the game that has goodies inside it.

 

Obtain a clean default.xex from the disc/local installation of the game of your choice. Chances are the file will be set to read-only, so right click it, choose "Properties", and uncheck the box next to "read-only". Click OK to get rid of the properties popup.

 

Copy the default.xex into the extracted folder.

 

If you are patching a game that is not Halo 4, you will also need to grab the following files:

waveShell-Xbox.dll

wavesLibDLL.dll

and a folder named "waves" and its contents (L360.dll and Q10.dll)

 

Remove read-only status on the above as well, then copy them to the extracted folder.

 

You will need the respective title update for your game with your specific Media ID. To obtain your Media ID, run start.bat and press a key. Be sure to read everything you see pop up as well.

 

Upon doing so you should see something similar to the following:

H6w59Gk.png

 

Only the last 8 digits (or 4 bytes) of the Media ID are relevant and have been highlighted above. When you have it, close the command window.

 

If you have been reading like I told you to you should notice the error below it. The error is because the batch file is set up to show the Media IDs of your default.xex as well as the Media ID of the default.xexp taken from the TU container, but since you do not have the xexp yet it gave an error.

 

Armed with your Media ID head to a site like http://www.xbuc.net/ or http://xboxunity.net/ and do a search for it. It should list exactly what you need.

 

Download the update file to your desktop

 

If you have a tool like Modio installed already open the update in it and extract the contents to your desktop. If you do not have such a tool, Velocity is free and recommended.

 

Now copy the extracted files and folders to the given TUfiles folder.

 

With your files in place run start.bat again, then hit any key again.

 

You should now be presented with 2 Media IDs this time, double check the last 4 bytes match on both and hit any key if they do.

Q8GQUav.png

 

Some more text will appear, so be sure to read it. Make sure no errors have occurred. You should see "Successfully wrote altered xex to topatch.xex" if all went well.

 

What that did was apply to TU to your default.xex and output to a new file named topatch.xex. Your original xex was then renamed to default.xex.bak for safe keeping.

 

With that done and verification that there is indeed a topatch.xex in the folder now, hit any key.

 

More will happen, be sure to read it, looking specifically "Patching ... Successful." and "Successfully wrote altered xex to" (the final xex name will depend on the game/TU).

 

If you are patching Halo 4 you should be done, but any other game will have another step, which will be applying the TU the dll files and waves folder. So hit any key. (If it was Halo 4 the window should close itself).

 

Verify no errors once again and if all is well then you can press any key for the final time to close the window.

 

Copy the final xex file, and the dlls/waves folder if applicable to your Xbox and enjoy! The dlls and waves folder will prompt an overwrite, so be sure to select Yes for each.

Share this post


Link to post
Share on other sites

9. Assembly

What is Assembly? Allow me to quote the Github readme:

 

 

Assembly is a free, open-source Halo cache file (.map) editor that was built from the ground up. It allows users to create and distribute creative patches for game content.

Assembly was designed with three goals in mind:

  • Flexibility - Assembly is capable of opening files targeted for Halo 2: Vista, Halo 3, Halo: Reach, and Halo 4. And includes a system which allows users to add in support for other formats with ease.
  • Speed - Spend more time researching and less time waiting for trivial tasks to complete. Even the largest tags load extremely quickly with invisible fields enabled, and the meta editor's search feature allows users to find values with ease.
  • Usability - Built using Windows Presentation Foundation and utilizing modern UI design concepts, Assembly is both easy to use and easy to look at.

Assembly was created to fully replace the map editors before it, including Alteration (Halo 3/ODST) and Ascension (Reach/Reach Beta, and Halo 4 via a different dll)

 

You can obtain the latest version of Assembly using the Assembly Downloader here: https://github.com/XboxChaos/Assembly/releases/tag/downloader

 

There are 2 ways you can go when extracting tags with Assembly;

 

You can extract with raw, which will take whatever raw data resource tags like bitm and mode require, and will allow them to be injected. Scarab on Sandtap? No problem!

 

You can extract without raw, which you probably won't be doing unless a tutorial says to. Tags are extracted, but do not have their raw included, instead, Assembly assumes all the raw comes from a shared location (campaign.map, mainmenu/map, shared.map) and keeps whatever references it had from the original map. Because of this, youcan run into issues if you don't do your research on what is shared and what is not. I've compiled handy lists of everything shared for each game which you can find in the following link: http://www.mediafire.com/download/q72zw282qjhidli/shared%20lists.rar

 

You can see information about all Assembly updates on Github here: https://github.com/xboxchaos/assembly

 

9.1. Setting Up Assembly

If you only just obtained Then upon running the application, head to Tools>Settings and I'll walk you through them, though most is preference.

 

General tab: All of this is preference, but make sure "Check For Updates At Startup" is checked. More info on Automatic Updates and Udate Channel can be found here: http://www.xboxchaos.com/topic/4639-introducing-the-new-assembly-auto-updater/

 

Xbox 360 Development tab: Here is where you will enter the name or IP of the console you have added to Xbox Neighborhood. You can also change screenshot-related settings.

 

Map Editor tab: The xsd.exe path is not necessary for anything, but adding it will allow you to use the "Decompile" button in pixel/vertex shader tags and look at the code for oohs and ahhs.

 

Then at the bottom you have this:

teMcI0s.png

 

The descriptions are self-explanatory, but these need to be filled in before you can extract most things. Choose a game from the dropdown and paste in the path to your maps folder which contains a clean/matching campaign.map, mainmenu.map, and or shared.map. This will allow Assembly to visit the shared asset to extract it. After pasting, select a different game or continue playing with settings.

 

Start Page tab: nothing important to note. Allows you to show/hide certain filetypes in the start page.

Share this post


Link to post
Share on other sites

10. Applying Map Patches
deadcanadian wrote out a nice tutorial so here it is:

BTW,  you can now open the patcher from the Start Page or even load an .asmp file directly from the "Open Content File" dialog so the first step is a little outdated (but still valid).

 

DeadCanadian said:

How to patch maps with assembly.

Open assembly and under the Tools menu you should see an item second in the list called "Map Patcher". This tool is capable of creating a new patch from a map that you have modded, applying an existing patch onto a map (usually onto an unmodded one to prevent conflict issues), and lastly a tool that will allow you to poke patches (so long as they don't have expanded memory).

Qh4l45H.jpg


To continue to where to apply a map click on the "Apply Patch" Text that is now shown on the screen between the two other patching options.

k2yeXnE.jpg

This menu will initially only show three text bars with buttons on the right hand side for you to choose files.

For "Patch to apply" browse your computers files for the patch that you wish to apply. Assembly is capable of applying .asmp files which is the primary patch format for assembly but also .patchdat and .ascpatch files which are legacy files from older Cache file modding programs.

For "Unmodified Map" browse your computers file for the modded map that corresponds with the patch you are applying. if you are unsure what map it is for and the patch is a .asmp if you look at the information about the patch just below the included screenshot it will say "Patch Target Map" which is the map that patch is intended for. Legacy patches will not include this information and will require you to have prior information.

For "Output Map" this is a saving filepath compared to the previous which were inputs. For this one you can choose an existing map which will overwrite it includes extra's you will need to name a map a certain thing in order for it to work in game.

zJUtF06.jpg

As seen in the image above you can see where Assembly shows that the file contains Extras. As tradition for making patches when you require a certain name for the map rather than overwriting the existing map we will name the patch file the same as the map should be named or include the name in the description. In the example image above you can see that the patch file choosen is called shrine_objects.asmp and in the description it shows shrine_objects.map. Therefor for our Output Map we will name it shrine_objects.map

As well when the map includes extras unless you acquired the ones for that map separately you will want to check the "Hell Yeah!" button which will then put those extra files from the patch alongside where you save your output map.

Now all that is needed is to click on the "Apply Patch" button and assembly will patch your map.

tCGkbbb.jpg

I patched my map to a blank folder so only the new files exist in here as shown. The files contained two folders which are your extras and then your new .map file.

LePY7rt.jpg

 
Once patched you can copy the resulting files over to your \maps folder via Neighborhood or FTP.

Share this post


Link to post
Share on other sites

11. Troubleshooting

Is your patch not working? Allow me to troubleshoot some common issues:

 

"Players Failed To Load Content" in lobby; Can come from a few reasons, and you can narrow it down by when the error happens. And If the error happens, the affected map is permanently marked as bad until the game is restarted, so keep that in mind.

 

If the error is near-instant, the .map cannot be found. This is likely due to giving it the wrong name during patching. To find the correct name, open the accompanying .mapinfo for the map in Assembly and check the "Map Filename" field on the left side. Rename your .map to match and restart the game and it should work.

 

Alternatively, a near-instant error can also mean the patch includes shared campaign assets that still rely on campaign.map. If order to fix you need to restart the game, then visit the Campaign or Firefight lobby before going to the Custom Game or Forge lobbies. Doing so tricks the game into loading campaign.map and allows you to play.

 

If the error takes a bit, typically loading to 20-40% and restarting to 0% a couple times, you either are running a non-modded xex or you have contpatch still enabled. If the map had a custom mapinfo and you were able to see/select it then know that your xex is fine and it is almost certainly contpatch's fault. To fix it, check the Dashlaunch section in the first post.

 

Black Screen/Frozen Loading Animation; If you made it this far then the patch is likely to blame. Either the patch itself is bad or it applied incorrectly. Re-patch the map and try again is all I can say, which if that doesn't work you should toss a post in the map's thread. If you get this there is something horribly wrong with the map in some way, or a bad shader/object is getting created before the map fully loads.

 

Dirty Disk Error; Either something is wrong involving the map's raw or the Map ID in the .mapinfo and .map does not match. Open the .mapinfo in Assembly and get the Map ID value, then open the .map and check the top of the SCNR tag, replacing the Map ID value you see if it is different.

 

Kicked Back To The Main Menu After Load Screen; If you get this, the build string of the .map does not match any of the ones listed internally in the xex. Update to the latest TU and you should be fine, or manually edit the build string with a hex editor if you are brave. This is mostly only seen with Halo 4 since the DLC maps have varying build strings for whatever reason. 343.jpg

 

Others Can't Join Your Game; Stop modding on XBL like an asshole, or make sure everyone has the same .map as you do.

Share this post


Link to post
Share on other sites

12. General Modding Information

Let's start with some lingo:

 

Plugins: External XML files that define the layout and content of a tag so Assembly can display tags correctly. They can be edited by anyone and doing so is encouraged (make sure to send me any changes so they can get added officially :tongue:). Updating them is important as they can sometimes include things that improve tag extraction/injection and give names to previously unknown values to play around with.

 

Tags: Maps are made up of thousands or more of these, and they control a majority of the game itself. For example every weapon is a tag, which in turn references more tags and so on.

 

Tag Classes: Each tag has a class, which corresponds to the layout and content of a tag. Every tag in a class has the same layout. In tutorials tags are usually referred to by their class as they could be applied to any tags under that class, or sometimes a class is only meant to have one related tag in a map.

 

Tag Blocks: These are found inside tags, and are typically used for repetitive data. So instead of a long list, the data is broken up in however many sections. Looks like this:

IBWgXHR.png

 

So the name of the block is "AI Properties", and the count is 1 (See parenthesis on the right), and the current index is 0 of 0 (Counting starts at 0 instead of 1)

 

If you ever modded in the past, you might know these as "reflexives" but that name as it turns out is incorrect. You may see the term used in older tutorials so just know that they refer to the same thing.

 

TagRef: Tag Reference. Found in tags, they are used to reference another tag. To make an example, a weapon tag contains the tag reference for its projectile.

 

Locales: Refers to the text in a map, and can be modified in the "Strings" tab in Assembly. Locales are split up by language, and then further split up via UNIC tags by application. Each locale is also paired with a StringID so they can be referenced in tags. A StringID can be attached to more than one string, granted the strings are in different UNIC tags. You are limited to the contents of the UNIC as far as replacing, but you are free to add to it with the String Editor.

 

StringID: A label of sorts found in tags. Comes in 2 flavors, and are made up of a 32 bit index value. There are global StringIDs which occupy larger indexes and are always the same value between each map, to be used by the engine (xex) for various reasons, and then there are standard StringIDs that are made up of things unique to tags, like object names or object variants.

 

Now some common tags:

 

SCNR/Scenario: The backbone tag of a map, defines all the basic information for the map like object spawns, AI spawns, death barriers, forge palettes, scripts, and more. SCNR references more crucial tags like the maps SBSPs and Lightmaps. You typically can't poke anything here without restarting the mission with the start menu or poking a checkpoint reload byte in multiplayer (more on that later)

 

MATG/Globals: Defines common values that are the same in each map, such as which biped you play as and your movement speed.

 

MULG/Multiplayer Globals: Defines common multiplayer values that are the same in each map, such as the forge biped and team colors

 

WEZR/Game Engine Settings: Defines the default gametypes, allowing you to modify typically more settings than what is displayed ingame. Starting with Reach, only Forge and Firefight remain, where the standard gametypes got moved to external files in VTGL. Regardless, you want to edit the WEZR found in the mainmenu, as that is the only place it matters.

 

HLMT/Model: The name is deceiving, it is not the model as you may think but rather the base of all objects. HLMT defines things like variants and health. It also contains the references for the rest of an object, specifically the MODE, JMAD, PHMO, and COLL.

 

MODE/Render Model: Now this is your actual model. This tag references the shaders, applies the model raw data, and defines the regions, nodes, and markers.

 

JMAD/Model Animation Graph: This tag defines all the animations of a model. A lot of animation data is raw data so there isn't too much you can edit here besides swapping or inheriting.

 

PHMO/Physics Model: Powered by Havok this tag makes models solid to the world. It also defines constraints for limbs as well as controls gravity lifts and mancannons. More info can be found here: http://www.xboxchaos.com/topic/4389-about-physics-models-info-forge-20-making-things-solid/#entry34436

 

COLL/Collision Model: This tag makes models solid to things like bullets. Nothing much to say otherwise.

 

SBSP/Scenario Structure BSP: This tag, alongside sLdT (and Lbsp starting in ODST onward) apply the rawdata for the world itself, meaning its model. Not much to edit here for most people besides shaders.

EHEBrandon and Dark Universe like this

Share this post


Link to post
Share on other sites

13. Tag Injection

One of the newest recent discoveries in the modding community, tag injection allows anyone to take tags from one map and put them in another.

Tag Injection has been made incredibly easy, to where all you need to do is right click the tag and select Extract. Then the Import button below the tag list will allow you to inject what you previously extracted.

 

Here are some notes about Tag Injection as it stands right now:

 

  • TIP: If you plan on injecting lots of things, it is always best to bundle everything from a particular map in one extraction to try and save space/game memory.
  • TIP: If you are editing things that you injected, it may be wise to then extract everything you injected into a clean map, this may reduce some filesize in the map.
  • Tag Injection for Halo 3/ODST is near perfect besides a general issue or two.
  • Assembly uses tag names and classes to prevent injecting anything it doesn't have to. So if you are getting a message saying nothing was injected then Assembly must have found what you were injecting already exists in the map.
  • Always keep backups and test load your map in-game after injection. I've seen many people have to restart because they didn't make backups. There are/may always be unknown factors that could cause issues even in games like Halo 3/ODST.
  • Sounds currently do not inject. Assembly is coded to automatically ignore SND! tags due to potential freezing. SND! is made up of indexes to the UGH! tag so the indexes point to the wrong things once injected elsewhere.
  • Due to the way the engine checks for animations, injection can easily result in some not working. This can be fixed manually with this tutorial: http://www.xboxchaos.com/topic/4353-fixing-injected-animations/
Edited by Lord Zedd
removed note about reach shaders since theyve been fixed, added tips
EHEBrandon and Dark Universe like this

Share this post


Link to post
Share on other sites

14. ".campaign" files

.campaign files define what missions are included in a campaign and what order they are. Maps are referenced in this file by their Map ID.

 

The latest Assembly now supports editing .campaign Map IDs. Simply open your file and add your Map ID over the first 0 (or -1).

 

If you want to know how to do it manually open this spoiler:

 

All you need is a hex editor.

All you have to do is open it up in said editor and scroll to the bottom. There's gonna be a lot of 00s but then you'll see this:

frJpJ53.png

 

Slightly before the "_eof" text is a bunch of Map IDs. What you want is to plug in the Map ID for your new mission to the next set of 4 00s (See red box). Mind you this value is hex not decimal like Assembly reads out, so you'll need to convert it with some online converter or Windows Calculator in Programmer Mode (Alt+3, enter your Map ID, then select the Hex radio button on the right). Windows Calculator won't have 0's at the beginning so be sure to account for them. Look at how the Map IDs are before yours for reference.

 

When your Map ID(s) are added all you have to do is save the file and copy it over to your game's \maps\info folder. You will have to restart the game and you will need a modded xex. If you aren't on the latest xex patch make sure you are because a few updates back I made Campaign missions show as always unlocked. If you don't you'd need to edit your GPD or play the final mission over to "unlock" your new mission.

 

Alternatively, Halo 4 added bytes that lets a level/Map ID read as always unlocked. In Assembly, just click the number label next to your Map ID and it will change color.

Share this post


Link to post
Share on other sites

15. Barriers

Probably one of the more popular mods is removing barriers, here's how you would do that;

 

There are 3 types of barriers:

Triggers: These are powered by Trigger Volumes, and found near the bottom of SCNR with the names "Scenario Kill Triggers" and "Scenario Safe Triggers". Kill triggers kill you when you enter them, and Safe triggers kill you when you leave them.

MOPP Trigger: Somewhat unknown on what they cover, seems to be Reach soft-kills, but it's good to remove them anyway. If used they will be found below the above triggers with the name "Scenario MOPP Triggers"

Design: These are physical "invisible walls" if you will, and are located at the top of the SDDT tag. Named "Design MOPP Codes" and "Design Shapes 2"

 

To remove them, simply expand the block information for each and set the count to 0.

SYQYCAN.png

 

Note that this will remove everything that will kill you, including water. If you would like to keep water kill triggers then you'll have to follow the Trigger Volume index value back to the Trigger Volumes block in SCNR and find which ones are for water and only keep those.

 

While technically not a barrier, starting in Reach multiplayer maps have multiple BSPs, and typically these "extra" BSPs have a flag set to prevent forging. You'll know this is the case if objects won't move past a certain point, and spawning past that point slings them back into the map.

To remove this flag, go to "Structure BSPs" near the top of the SCNR tag, and for each entry, uncheck "Prevents Forging" where needed. You will need to reload the map for this to take effect.

 

In Halo 4, 343 added World Bounds to zonesets, which acts as a pseudo-barrier that despawns you when you leave them. They can be found in the "Scenario Zoneset Groups" block near the bottom. Set them to something high and go wild.

 

Note that some maps like Pitfall just have holes in the map apparently, so even with expanded world bounds it is possible to accidentally enter an area the game believes to be inside geometry and will despawn you still.

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.