How to Prevent Your Maps from Crashing and/or Fix Them — “Bad Inline Model” Errors
1 replies, posted
[I]This is partially a rewrite of [URL="http://facepunch.com/showthread.php?t=1230985"]this thread[/URL] in the form of a guide/tutorial for mappers. I feel that more of them need to know about this. It is [U]not[/U] posting the same thing twice.[/I]
[HR][/HR]
[IMG]https://dl.dropbox.com/u/17850283/badinlinemodel.png[/IMG]
I'm sure you've experienced these errors at one point or another. They're incredibly annoying and make your game crash instantly. They cause entire servers to empty out if an affected map comes on, and they're hell to troubleshoot.
[H2]How can I prevent my map from being affected?[/H2]The cause of bad inline model errors is the presence of static content ([URL="http://developer.valvesoftware.com/wiki/Decals"]decals[/URL]) on dynamic [URL="http://developer.valvesoftware.com/wiki/Brush_entity#mw-pages"]brush entities[/URL] (doors, moving platforms, breakable glass panes, rotating parts and so on). This is what the number in the errors represents — the index of the inline (brush) model causing problems.
All you have to do is be careful where you stick your decals: make sure they aren't placed over any brush you've tied to an entity, either partially or in their entirety. This, for example, is bad:
[IMG]https://dl.dropbox.com/u/17850283/baddecalexample.png[/IMG]
Even though the button doesn't move when pressed, the lambda decal on it still causes an error. In a perfect world, the compile tools would report this to you, or even fix it for you, but you'll just have to keep an eye out yourself.
In summation, tread carefully when decorating your map, and keep decals away from moving parts! This includes, but is not limited to, the following entities:
[TABLE="class: outer_border, width: 500, align: center"]
[TR]
[TD][URL="http://developer.valvesoftware.com/wiki/Func_breakable"]func_breakable[/URL][/TD]
[TD][URL="http://developer.valvesoftware.com/wiki/Func_breakable_surf"]func_breakable_surf[/URL][/TD]
[TD][URL="http://developer.valvesoftware.com/wiki/Func_brush"]func_brush[/URL][/TD]
[TD][URL="http://developer.valvesoftware.com/wiki/Func_button"]func_button[/URL][/TD]
[TD][URL="http://developer.valvesoftware.com/wiki/Func_clip_vphysics"]func_clip_vphysics[/URL][/TD]
[TD][URL="http://developer.valvesoftware.com/wiki/Func_conveyor"]func_conveyor[/URL][/TD]
[TD][URL="http://developer.valvesoftware.com/wiki/Func_door"]func_door[/URL][/TD]
[TD][URL="http://developer.valvesoftware.com/wiki/Func_door_rotating"]func_door_rotating[/URL][/TD]
[/TR]
[TR]
[TD][URL="http://developer.valvesoftware.com/wiki/Func_extinguishercharger"]func_extinguishercharger[/URL][/TD]
[TD][URL="http://developer.valvesoftware.com/wiki/Func_guntarget"]func_guntarget[/URL][/TD]
[TD][URL="http://developer.valvesoftware.com/wiki/Func_healthcharger"]func_healthcharger[/URL][/TD]
[TD][URL="http://developer.valvesoftware.com/wiki/Func_illusionary"]func_illusionary[/URL][/TD]
[TD][URL="http://developer.valvesoftware.com/wiki/Func_ladder"]func_ladder[/URL][/TD]
[TD][URL="http://developer.valvesoftware.com/wiki/Func_lod"]func_lod[/URL][/TD]
[TD][URL="http://developer.valvesoftware.com/wiki/Func_lookdoor"]func_lookdoor[/URL][/TD]
[TD][URL="http://developer.valvesoftware.com/wiki/Func_monitor"]func_monitor[/URL][/TD]
[/TR]
[TR]
[TD][URL="http://developer.valvesoftware.com/wiki/Func_movelinear"]func_movelinear[/URL][/TD]
[TD][URL="http://developer.valvesoftware.com/wiki/Func_physbox"]func_physbox[/URL][/TD]
[TD][URL="http://developer.valvesoftware.com/wiki/Func_physbox_multiplayer"]func_physbox_multiplayer[/URL][/TD]
[TD][URL="http://developer.valvesoftware.com/wiki/Func_platrot"]func_platrot[/URL][/TD]
[TD][URL="http://developer.valvesoftware.com/wiki/Func_recharge"]func_recharge[/URL][/TD]
[TD][URL="http://developer.valvesoftware.com/wiki/Func_reflective_glass"]func_reflective_glass[/URL][/TD]
[TD][URL="http://developer.valvesoftware.com/wiki/Func_rot_button"]func_rot_button[/URL][/TD]
[TD][URL="http://developer.valvesoftware.com/wiki/Func_rotating"]func_rotating[/URL][/TD]
[/TR]
[TR]
[TD][URL="http://developer.valvesoftware.com/wiki/Func_tank"]func_tank[/URL][/TD]
[TD][URL="http://developer.valvesoftware.com/wiki/Func_tankairboatgun"]func_tankairboatgun[/URL][/TD]
[TD][URL="http://developer.valvesoftware.com/wiki/Func_tankapcrocket"]func_tankapcrocket[/URL][/TD]
[TD][URL="http://developer.valvesoftware.com/wiki/Func_tanklaser"]func_tanklaser[/URL][/TD]
[TD][URL="http://developer.valvesoftware.com/wiki/Func_tankmortar"]func_tankmortar[/URL][/TD]
[TD][URL="http://developer.valvesoftware.com/wiki/Func_tankphyscannister"]func_tankphyscannister[/URL][/TD]
[TD][URL="http://developer.valvesoftware.com/wiki/Func_tankpulselaser"]func_tankpulselaser[/URL][/TD]
[TD][URL="http://developer.valvesoftware.com/wiki/Func_tankrocket"]func_tankrocket[/URL][/TD]
[/TR]
[TR]
[TD][URL="http://developer.valvesoftware.com/wiki/Func_tanktrain"]func_tanktrain[/URL][/TD]
[TD][URL="http://developer.valvesoftware.com/wiki/Func_trackautochange"]func_trackautochange[/URL][/TD]
[TD][URL="http://developer.valvesoftware.com/wiki/Func_trackchange"]func_trackchange[/URL][/TD]
[TD][URL="http://developer.valvesoftware.com/wiki/Func_tracktrain"]func_tracktrain[/URL][/TD]
[TD][URL="http://developer.valvesoftware.com/wiki/Func_traincontrols"]func_traincontrols[/URL][/TD]
[TD][URL="http://developer.valvesoftware.com/wiki/Func_wall"]func_wall[/URL][/TD]
[TD][URL="http://developer.valvesoftware.com/wiki/Func_wall_toggle"]func_wall_toggle[/URL][/TD]
[TD][URL="http://developer.valvesoftware.com/wiki/Momentary_rot_button"]momentary_rot_button[/URL][/TD]
[/TR]
[/TABLE]
[H2]Need a quick way to check or fix your map?[/H2]Look no further than the [URL="http://sassilization.com/inlinepatcher/"]Sassilization Inline Patcher[/URL].
If you're unsure whether you've misplaced any decals in your map, a quick way to check is to compile it and run the BSP through this application. The thorough logging system will inform you what the problematic decals are (their texture paths) and where they're located (underlying brush model, class and targetname).
Likewise, if you're a server owner and would like to spare your players the discomfort of crashing to desktop, run any map you get complaints about through the patcher, and then upload the fixed version to your servers.
[B][URL="http://facepunch.com/showthread.php?t=1230985"]Check this thread for more info.[/URL][/B]
Thanks for taking the time to read this. I hope that you will use what you learned here to improve your mapping, both for your and the end-user's sake.
Comments, remarks and criticism are welcome.
Added better example picture and updated entity list.
Sorry, you need to Log In to post a reply to this thread.