Qleft Finally after a lot of hard work the Car Maker is finished and has been released! The Car Maker is included in both the multiplayer and the single player downloadable version of the game.
- Omar Waly, explaining the release of the Editor

The car editor sneak posted on the Facebook page of Need For Madness (By Omar Waly)

The Need For Madness Car Maker is a feature in Need For Madness Multiplayer that allows players to create their own vehicles for use in the game. The Car Maker was first released on the 5th March 2012 and was announced on the NFM Facebook Group at 11:00pm. Immediately after it's post, many members have liked, commented, and shared positive feedback. The ability for registered users to publish cars through the Car Maker was made available on 11th April 2012. Since then, many car makers have been recognised for their skills in car making.


The Car Maker adds a bit of customisation to the game and relies fully on basic coding to make cars. It allows the user to generate polygons using coded point co-ordinates which can then built up to form whatever vehicle the user would like. After the body is created, the user can then define which two colours are changeable in the Multiplayer, the placement and appearance of the wheels, which class the car is grouped under (Class C, C & B, B, B & A, A), the statistics of car (Top Speed, Acceleration, Handling, Stunts, Strength and Endurance) and the physics of the car, which include handbrake strength, the ability to lift/be lifted by or push/be pushed by cars and how damaged the car looks when it has been hit, before being ready to test drive the car and rate it's handling. The coding language used to make these vehicles can be complex, which is why when the first time the Car Maker is loaded, a link to the Simple Car Tutorial is displayed.

There are a few methods for creating a car in the Car Maker: the pen and paper method, which is shown in the Simple Car Tutorial and requires you to draw a car out and use a ruler to find out the co-ordinate values to be written into the polygons, an .obj import, which allows users to import a model exported from a 3D modelling program like Blender using the option on the Car Maker start page (although due to triangulation of faces in the .obj, a lot of merging of polygons is required) and importing a SketchUp model using Jim's Plugin, which allows SketchUp users to convert their model to polygons within SketchUp, to be pasted into the Car Maker. The maximum limit of polygons allowed in the Car Maker is 210 due to lagging problems that would arise, especially in the Multiplayer, if more polygons are used.

Car maker

An edit of Nimi done in the Car Editor.

The editor is available for the new downloadable edition of Need for Madness (offline), and also for the existing downloadable Muiltplayer version for people with accounts. Unregistered users can also create cars as well, but are limited to using them offline, and cannot be used during Multiplayer. This has also caused a small outrage within the Multiplayer community, especially those who cannot register.

Stats Edit

The total number of stat points allowed depends on which class the user has put their car into and is shown below:

  • Class C: 520 points
  • Class B & C: 560 points
  • Class B: 600 points
  • Class A & B: 640 points
  • Class A: 680 points

The Car Maker gives users the ability to have stats which are similar to the NFM cars, and along with the ability to access the original cars and put them in the Car Maker, this has sparked a popularity of modified NFM originals amongst the players.

Physics Edit

The Car Maker allows users to define how the car acts when driving. There are many options for users to adjust including handbrake strength, turning sensitivity, tire grip, bounciness, how strong the car would lift or push another car in a collision, how strong the car would be lifted or be pushed in a collision, aerial control and rotation speed when performing stunts, the radius and magnitude of damage when the vehicle has been crashed into and the amount of damage to the roof, and finally, the engine sounds. There are rumours about the use of aerial control and rotation speed affecting the power drain on cars, of which is avoided by setting the stunts stat high and the control and rotation speed physics low.

Code Usage Edit

Making a polygon Edit

Polygons are created in the Code Edit section of the Car Maker using the codes <p> and </p>. In between the polygon codes, point codes which are coded as p(x,y,z) are created to define each point of the polygon. Users are limited to how many points they can have, from 3 to 100, as any more or less will result in a Java code error.

Giving a polygon color Edit

Each polygon has a distinct color under a red, green, and blue format. In the code, the format is c(r,g,b), with "c" being short for "color". For example, c(0,0,0) will a polygon appear black, c(255,255,255) will make it appear white, c(255,210,0) will make it appear yellow, and so on. This line of code will always be located under <p> when making a polygon.

gr() Edit

gr() is a code used within a polygon code to define the grounding (foreground or background) for a polygon which is being shown incorrectly on top of or below other polygons as well as being used to add special effects to the polygon. Negative gr() values result in the polygon being rendered more closer (foreground) whereas positive gr() values result in the polygon being rendered further away (background). The full list of effects of specific values are shown below:

gr() value Visual effect Description
No gr() used
Gr() normal

The Car Maker's default rendering of the polygons.

No change in the grounding appearance. If the polygons are rendered correctly then no gr() needs to be used unless it's for special effects purposes.
1 to approx. 150-200

gr(70) used on the blue polygon to render it behind the green polygon.

Renders the polygon behind other polygons with an outline. The larger the number, the more pronounced the effect. Note that large values (over 150) cause the polygon's outline to vary in visibility depending on how far away the polygon is from viewing range. For a stable effect that is viewable from far away, stick to between 1 and 100.
approx 150-200 or higher

gr(1290) used on the blue polygon to render it behind the green polygon and without an outline. The polygon is only visible due to the close viewing range.

Renders the polygon behind other polygons without an outline. The same effect can be seen without gr() when the car is viewed from very far away. Note that very large values (over 1000) cause the polygon to vary in visibility depending on how far away the polygon is from viewing range. For a stable effect, stick to between 250 and 750
-1 to -9, -16 and -17, -19 to approx 90
Screenshot 111

gr(80) used on the green polygon to render it in front of the blue polygon.

Renders the polygon in front of other polygons. The larger the negative number, the more pronounced the effect. Note that large values (over 70) can cause the polygon to vary in visibility depending on how close the polygon is from viewing range. For a stable effect that is viewable from close range, stick to between -1 and -60
Screenshot 112

gr(-10) used on both polygons. Notice how the effect makes the coloured outline barely visible on the blue polygon.

Renders the polygon's outline in the same colour as the polygon. This effect is used to make a polygon look like it is glowing.
-11, -12, -14
Screenshot 113

Both polygons are using gr(-11), but due to the effect, only the green polygon is showing because the visible side of the blue polygon isn't seen.

The actual effect is unknown but it has an effect of rendering the polygon as one-sided from different ranges depending on which value is used. Due to which side is visible being linked to the shading of the face, the effect can be unstable. Use fs(-1) or fs(1) to try and change/intensify which side of the polygon is visible. gr(-14) renders the polygons with even less stability.
Screenshot 114

Both polygons are using gr(-13), making them completely invisible and leaving just their shadows for display.

Renders the polygon invisible, just showing it's shadow. Can be used for hidden spikes, bumpers for wasting cars or to repair part of the vehicle's shadow which isn't rendering correctly.
Screenshot 115

Both polygons have gr(-15) applied, making them look damaged, distorted or hidden.

Renders the polygon as if it has been damaged. The effect varies between different polygons: some polygons may appear damaged and some polygons may just become invisible. Notice that the damage effect randomly distorts the polygon's points each time it is loaded.

Both polygons use gr(-18), causing their outlines to look electrified.

Renders the polygon's outline with an electrifying effect. This effect is similar to gr(-11), but the outline changes colour from the polygon's colour to various shades of blue. This effect is used on the checkpoints within the game.

fs() Edit

Screenshot 116-0

Nimi's rear side without fs(-1) (left) and with fs(-1) (right)

fs() is a code used within a polygon code to help define the face shading of a polygon, and can also be used to correct any grounding issues if gr() doesn't get the desired result. A polygon may be shaded incorrectly due to the order of the points within the polygon, with the first few polygons theoretically setting the colour of that polygon. fs() can be used to correct the shading as opposed to changing the order of the points within the polygon. This piece of code can also be used in conjunction with gr(-11), gr(-12) and gr(-14) to set the front side of the polygon (see above). The effect of fs() depends on whether a positive or negative value is used, and the effects vary with the order of the points within the polygon.

noOutline() Edit

Screenshot 117

Nimi's rear side without noOutline() (left) and with noOutline() (right)

noOutline() is a code used within a polygon code to hide the polygon's outline. No value is needed in between the brackets as there is no varying effect. noOutline() can be useful for parts which are so small, the outline covers them or makes them hard to see, but can also be used to make polygons appear merged without actually merging them. A problem with noOutline() is that neighbouring outlines of other polygons don't look clean so it is recommended to just use it for small stray polygons.

newstone() Edit

newstone() is a code used at the top of the vehicle's code that hides all polygon outlines. The effect is exactly the same as noOutline() but quickens the process of hiding all outlines instead of noOutline()-ing every polygon.


stonecold() is a code that blends the polygon outlines of a model with the background colors of a stage, such as the fog and snap. This will give the model a 3D-like texture to it. This feature is used on all of the track piece models, and unlike newstone() and noOutline - it works in NFM1 and NFM2. This effect is crucial for track pieces.


DIV() Edit

Introduced in NFM1, this function makes a model bigger or smaller in scale on every axis. Unlike idiv(), this scales the entire model by 10 instead of 100, resulting in naturally larger models and scaling. This is useful for track pieces, however it lacks precision when scaling with any integer is that isn't divisible by 10.

IDIV() Edit

This function is very similar to div(), but instead of scaling the models by 10, it scales them by 100. This also scales the model on every axis, so even if the number is changed, the model's aspect ratio will still stay the same. This function was introduced in NFM2.

IWID() Edit

This is the NFM2 version of ScaleX; this function will scale the model on the X axis. A bigger number will result in a wider model while having a smaller number will make the model more slim in shape. This, along with idiv() is also scaled by 100.

ScaleX() Edit

Introduced in NFMM with the addition of the Car Maker, this scales a model on the X axis, resulting in a wider or slimmer model depending on the number. This works exactly the same as iwid().

ScaleY() Edit

Introduced in NFMM, this scales a model on the Y axis. The bigger the number, the more extruded it will be, while having a smaller number will result in a flatter model.

ScaleZ() Edit

Introduced in NFMM, this scales a model on the Z axis. The bigger the number, the longer the model will be, while having a smaller number will make the model more scrawny in shape.


A very basic function that's been around since NFM1. This creates a shadow of the model while in-game; this is especially useful for people creating custom versions, as the car models have to have this to have a shadow drawn underneath the model. However, when used in NFMM, it serves no purpose since the Car Maker automatically detects and draws a shadow of the model. This is used on car models only.


Though Omar Waly has released it, there are still some criticisms, due to one of his notes that says that The Custom Cars will only be playable online in Need For Madness Multiplayer for registered players.

Another issue with this is the coding limit before over-coding the stage is decreased severely for test drives, and car statues will now cause errors to the stage.

Registered users have been subjected to the annoyance of unregistered users asking for passwords just for the access to the cars players have created, regardless of whether they were public or private. Also, cars were being created and published with overly sized wheels and/or rims and wheels that were too close to the center, sometimes making them almost impossible to directly waste them. The April 19th 2012 update restricts users from publishing cars with overly sized wheels along with some errors, although there have been a few instances that it can be bypassed.


Link to offline downloadable version.