• Announcements

    • Detrux

      Site Relaunched   10/13/2016

      Welcome back to BFEditor.org! We've upgraded the forum software, removed the spammers, and improved security. Apologies for the downtime! Det
Sign in to follow this  
Followers 0

The MemeEdit Tutorials

6 posts in this topic

Guess ill kickstart the contest then :P


This is what I know:

BF2 has some Namenodes provided like Ingame and Topleft etc. Ingame is THE basis for the ingame hud. It provides some simple nodes which can be used to do 'stuff' in the Hud. Ingame is a file based on the Meme 2.0 standard, which is also used in bf42. The MemeEdit application can show you textures in the Renderer (usually viewed pink, although you can change this setting in the Node tree window (click on DxSystem and in the nodeview window double click any property you want to change and change it in the dialog)) and it ought to be able to play sounds too, but I haven’t seen any of that (I have a hunch this tool was originally made for bf42 as bf2 has no sounds in it menu, bf42 did have them however in the main menu(which is now swiff in bf2).


The Layout of the app (I moved windows around and maximised it so scrollbars appear. The layout of the thing when you start is very bad actually)


Direct link:


For some reason I am not able to load the bf2 workspace but since were doing tutorials anyway we create our own.

Setting up your workspace

Open MemeEdit.exe. You'll get a blank screen w/ some windows. Click in File on "New workspace"

You’ll get a dialog asking for its name. Were working in BF2 so name it "Battlefield 2" or "Battlefield 2 Workspace", just not "bf2" if you do not want to overwrite the old one (which is bf2.mew (jay, now you know what it is, no need top copy it into your mod :P))

Then it’ll ask for the path. Enter the path where you want the workspace to be saved. This will also be the path the . I choose My bf2modsbf2 folder. If you want you can use relative paths too. The Editor will use its own path as the beginning directory. If, for example, you type “./menu/” the editor will place it in the menu folder you can find in the mods/bf2 folder where the editor is located.

We now have a workspace which can be saved. Try it now:

File: Save Workspace.

Adding a project

We have a workspace, let’s add a project, shall we?

In the workspace window, right click on Workspace 'WORKSPACENAME' and click: Add new project.


Give it a name (MyProject or whatever you want, which is a .mep file).

When it asks for the path enter the path where you want your project file to look for files to load (can be altered) and where it should be saved. You can use an absolute path or a relative path, again, relative means relative to the editor. Save your project files in the same directory as your workspace files, else the editor will crash.

We now have a project, let’s save it. Right click on PROJECTNAME in the Workspace window and choose save.


We now saved our project (projects contain what you’re currently editing, workspaces contain your projects).

Extracting menu files and import them

We have a project, let’s start editing. Extract the files that do not have an extension (like Ingame) from Menu_server.zip. These are our meme files. Put them in the exact same dir as you typed in when creating your project. You can try to put them elsewhere but you need to edit the projects path list for that. You can find it by right clicking on your project and then clicking Project Path list


The buttons are quite self explanatory. It will look for its files from the top path to the bottom path. This allows you to easily import and export files from different folders. This also enables the project to load files used in other files in different directories (for example picture node textures)

Now you have done that, import them.

All to the right there's the "registered objects" window with a folder called Root. Right click root and click "Load object"

It’ll ask you to give the name. Type in "Ingame" (with a capital 'I', its case sensitive). Ingame is now loaded. With ingame all its children are loaded too, that why you have to extract them all, else you get errors (see the log for that on the far left)


Click the + Next to Root to expand. You can now see all folders and nodes which Ingame and its children have. Let us start editing them shall we?

Changing values

When you right click a node you can change its value or its properties, for instance, in the folder Kits is a BoolData called "showIngame". Right click it and select Value. You get a dialog with the text "true" which can be edited. This booldata node controls of the entire hud will be shown or not. Set it to false and you effectively disable the Ingame hud. Not much use here but if you like to try it you can.


Show the Tree and enable display

We can also have the DirectX display show your NameNodes w/ their childs (if they have images assigned to them. Since were in BF2 we do not have that, but if you for instance import Menu from BF42 you can actually show the control setup pages for example if you like). The DirectX Display can show PathNodes and NameNodes. PathNodes automatically import the NameNodes they’re linked with. BF2 has no pathnodes in its Meme files so you can’t view them if you only have bf2, but if you have bf42 you can try it out. Just drag them on top of the DxSystem

In the registered objects window you can click and drag nodes. Drag Ingame (NameNode) ontop of the <NameNode> in the Node Tree window. Wham, you can move nodes around now. To do this, in the little tools window click the move/size button and you can move and size (in the DxScreen).


Drag into the Node Tree


Select the move tool


Move the nodes (they’re really hard to find)

Editing the Node Tree

Let us do some editing with the transform nodes.

Expand the root folder and drag Ingame (NameNode) into the Node Tree window.

Expand the first TransformNode. A list of splitnodes appears. Each of these splitnodes hold a part of the hud. We’re looking for the bottomleft part so expand the 3rd splitnode. Another TransFormNode and a BfTransFormNode appear. The BfTransFormNode is for the animated one, but I want the static as that shows up so nice on the healthbar (which is part of static, look it up in


Its this part you want for example:

hudBuilder.createSplitNode  BottomLeftStaticHud BottomLeftPrimaryHealth

hudBuilder.setNodeShowVariable 	 PlayerHealthShow

Also, you can see a SplitNode is created as a child of the BottomLeftStaticHud and it will account for our health status display etc)

You find the static one by expanding the TransformNode. It’ll show up as NameNode (BottomLeftStatic). To move it around, we need to edit the TransformNode.

In the NodeInfo window you’ll find a float X with the value of -1. Double-click X and a dialog pops up. Change the -1 into 92 and click OK (you may find trouble getting focus if you move the mouse over the DxDisplay. To disable this behaviour goto Opiotn->Options and uncheck the "Autofocus project window" checkbox).


Right click on the Root folder and click save changes. That’s it. Check the log if the file successfully saves (if not it might be read only) and put Ingame into the menu_server.zip file. Load up BF2 and this is what you’re supposed to get:


Adding in nodes in the Node Tree

This is the method on applying new nodes into your Menu files: Click and drag. You can drag registered objects into the node tree, but you can drag Classes into the node tree aswell. You can’t drag them all but the most you can, it depends if the Node is a valid child (like you cant add an actionnode because its supposed to be a child of an action variabele). You can also drag Classes into the Registered objects window. Again, not all of them but some. If you like to add a new NameNode to the Node Tree, first add it to the registered objects window so you can give it a name and then move it from the registered nodes into the node tree.

Example: I once got an error about BottomRightAnimate and it appeared it was just gone, so I put it back in. It was under the 2nd splitnode under the BfTransFormNode. I opened up the BfTransFormNode and dragged the BottomRightAnimated (NameNode) onto the closing <node> tag so it was added to the BfTransFormNode.



Anyway, let’s save this stuff. Make sure you have UNset all extracted files Read-Only attributes so you can save. Right click on the Root folder and click Save All Changes or Save All (depending on what you want). Save your project and your workspace and exit MemeEdit.exe. You may now have a better understanding of the app.

Dont forget: the app is not very stable and tends to crash on saving and mainly loading. SO save and save often and make backups, you never know


Share this post

Link to post
Share on other sites

Rexman once made a tool to read MemeFiles too. It was included in the MDT and I reckon it should work for 42 too. Ask Rex, he might now more :P

Share this post

Link to post
Share on other sites

Yah it got shipped with patch 1.2 I believe, or 1.12, not sure.

Except for being able to create the basics of the HUD you cant do much with it really. I also tried if it worked w/ bf42 menus but that wasnt really successful, it just made the game crash. It was able to properly open them though.

There's quite a big TODO list in that program, mainly the options and the Undo.

Share this post

Link to post
Share on other sites

Guess what: even more info on this (little bit outdated but functional) tool.

I cant believe this wasnt released w/ the BF42 MDT since it works very well on Battlefield 1942 (and thats what this tool was written for anyway).

Today were going to see some results for the bf42 menu and learn about options.

First setup our environment. Make the layout in the MemeEditor jsut the way you like it best (ie rescale the windows, personally iI fele theyre too big). Next we're going to change the options, maybe you want those different too.


Go to Options->Options from the main menu. Next we can change the various optoins available. In the renderer you cna choose either to renderer graphics in OpenGL or in DirectX (those people with a VooDoo chipset might like OpenGL). Below you can check or uncheck the "Create dummie pictures if not found". This wil ltell the Editor either or not to render white squares on picturenodes that have a picture assigned but which connat be located (if you have setup your environment properly this should not be necessary). The Grid wil lallow you to disable or enable the grid and change its various options. Size sets the amount of pixels each snap is away and offset will change the offset. The TV safetyborder is shown as a darkkened overlay on the edges (size controlled by percantage) you cna use to make sure everything can be seen on different aspect ratios. The show 4:3 limit is almost like the TV safetyborder but how it is shown depends on the resolution set in the projects settings. With Pointer you can show or hide your cursor when it is over the renderer and you can enable a reference cross where your mouse is pointed at. With autofocus window you can enable or disable the autofocus behaviour of the renderer. When enabled the renderer will always get focus when the mouse moves over.

Next you cna save your options. Select Optnios->Save options form the main menu to do this. This will save your current settings, including the layout of your Editor AND the current workspace your in. When restarting the editor everything will be the same as you left it then.

This is only for those people who have BattleField 1942

Using any RFA explorer open up menu.rfa and extract its contents (here ill extract it to c: so ill end up w/ a folder menu on my harddrive)

Having done that, downlaod some batch renamer (I used AntRenamer, its opensource freeware) and rename ALL .dds files in the Texture folder (here c:menuTexture) to .tga, keeping the name the same. If you wont do that the editor will not read the textures (the menu files point to tga files but theyre .dds in reality. This conversion was handled by BF42 itself but the editor does not have such an function)

Now in the menu folder, create a new Font folder. Create an empty textfile and rename it to: standart6.dif . This will act as a dummy for the font used in the menu files were going to edit.

Lets create a new workspace and a project. Create a workspace and set its path to c:menu

DO the same with a new project. Then go to the project path list and add ./Texture and ./Font to it.

Save the both and then load the CommonControlsMenu object. Expand the root folder and drag the CommonControlsMenu(namenode) into the Node Tree and if all went well you can now see the commoncontrols page 1 from the bf42 menu. Please check in the Log if you see the error about stadart6.dif not found or not. If you see it, you wil lnot be able to export properly and will make bf crash when in the menu.

First we move a node around. Well move the node that contains all the contents related to the key used to enter/exit vehicles (thats the first tekstbox in the page)

Exapnd the 1st TransFormNode. Expend the splitnode.

YOu should now be able to see a pathnode and directly below it its currently assigned nameode. If you click on the arrows in the renderer you will see that this namenode will change to the current page your viewing. Thats what pathnodes are good for: chagning to different namenodes. You can use buttons to assign a fucntion to them so the pathnode will get updated. Well change something like that later on.

Expand the first transformnode. You wil lnow get a list with lots of transformnodes. These are all for the tekstboxes their text and pictures. We want to move the first one (note we could have done this very easily by using the move tool in the renderer. The point here is to understand the Meme) When you have selected the first transfornode change it X value (in the Node info window) from 0 to -10. As you can see the 2 boxes in the top move to the left.

Now to edit some other stuff. Lets make some wierd changes. Were going to set the next button to bring us to the CreateGameMenu instead of CommonControlsPage2. The results are ugly, but very present.

So lets do this. Collapse the last opened transformnode (the one with the transform nodes added which represent the textboxes). Expand the transformnode below it. Expand the 3rd transformnode below it. Were are now dealing w/ the transformnodes which holds the "Next" button. As you cna see it hold a BfButtonNode. A BfButton has textures assigned to it, a value which tells it on what event to react and what action to perform and 2 values to give its width and height. Lets edit the action it performs. Select the BfButtonNode and double click "action" in the node info window. A new window pops up. It holds an actionlist, which is a list that holds different actions to perform one by one. Doubleclick the ActionList. A new "Choose" window pops up. It holds a SetPathAction. This type of action changes the current path (namenode) of a pathnode. Lets alter this action. Doubleclick it once agian to open a new, last window. The first "Path node" variabele tells what pathnode to alter. Here it is ControlsPageLayer. The variabele below it tells what ot change to. Originally it is CommonControlsPage2, but were going to change that. Drag the "CreateGameMenu" namenode form the registered objects window ontop of the "name" column of the "Destination node" variabele. Its value has now changed to CreateGameMenu. We can now close all the new created windows. You cna try out the result in the editor. Click the button and see what happens. The result looks wierd but it does exactly what we told it to do: Open the CreateGameMenu.

Lets save our changes.

When you saved everything, copy CommonControlsPage1 from c:meny to Battlefield 1942Modsbf1942menu

Open up WinRFA or your rfa explorer (I use WinRFA). Click Pakc in the menu, browse to your modsbf1942menu folder, root dir is menu and save it as Modsbf1942Archivesmenu_001.rfa.

Launch Battlefield (preferably in windowed, if you screwed soemthing up you have more chance to escape a gamecrash)

and you may get this:


Isnt that beatiful? :P

This is non bf1942 again:

So in order to change values, you can modify a variabele by double clicking it. IF a dialog pops up you can type in directly. If a new node Info window popsup you have to doubleclick agian, and if an empty Node Info window pos up you have to drag a item ontop f the variabele in the previous node info window. When dragging an objct, choose carefully between dragging a new one frm the Classes window or one form the registered objects window.

If you liek to add a new function for example, drag one form the Classes to the Registered objects ot give it a proper name, then from registered to the node info to place it. Skipping the restigered window will make you unable to rename it. If names dont maetter (ie you wnat ot add an ActionList) drag it from Classes directly into node info.

And make sure when loading an object it does not complain about missing files. If it does, try to locate it and if you cant, make a dummy (0 KB) file.

Share this post

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  
Followers 0