Talk:Decompiling Maps
no_decomp 1
Should this article really be discussing how to bypass the "no_decomp" 1 flag? It's purposely violating the author's intent when you remove that keyvalue. --Campaignjunkie (talk) 13:44, 4 Feb 2006 (PST)
Better the make it public then have a few people spread it by word of mouth. Maybe it'll get changed faster this way. Public knowledge is the best way to get things changed. Its the same theory that all these books are comming out now a days about hacking and computer security. --Red Comet 16:05, 4 Feb 2006 (PST)
- Um, as I say on my faq page, using a no_decomp key is the easiest to bypass of the protection methods, which is why I also have texture-based and brush-based checks. Brush-based is best, but any method can be defeated by someone with sufficient determination. Ultimately, they could write their own decompiler which ignores all checks. --Rof 15:25, 4 Feb 2006 (PST)
- I was unaware of these other methods of security you added, so I edited my comment, and yes, you are right that any system you use could be bypassed, but at its current state, all three of your protections are simple to by pass. Java is the easiest language I have ever seen to be decompiled. Also, you use string matching for 2 out of those 3 systems, which can be easily found in a basic hex editor. The first thing I did was replace the no_decomp string with a favorite string of my own, and then I changed the tools/locked string to tewls and as for your final prefab thing, I have not been able to test it yet --Red Comet 16:05, 4 Feb 2006 (PST)
Please don't bash Rof, what he has provided has helped thousands of Source mappers. Valve has a good attitude about Vmex and as he stated there are protection methods. --wisemx 15:38, 4 Feb 2006 (PST)
Sharing is Caring
Of course its also worth remembering that unreal map files aren't even compiled and anyone can open/copy/share any map including original game ones. In my experience this just lead to a much more laid back approach to sharing of information and none of this overprotectiveness that you get in HL community. ColCob
- I'm all for sharing: but for immensely popular maps like de_dust, easy and accurate decompiling would lead to even larger numbers of variants, as everyone tries to "make it better" by adding a 3rd route or a sniping tower - in which case, I would prefer overprotectiveness to dust-clone oversaturation of the community. Plus, one can make the argument that you can't compare the Unreal and HL communities, as the HL player base is roughly 10 times larger. More people probably play de_dust than the entire Unreal series combined. (of course I don't have actual numbers for that, but fabricating facts is too much fun) --Campaignjunkie (talk) 12:15, 5 Feb 2006 (PST)
- It doesnt matter if everyone and their uncle changes dust to have a new wall or hidden staircase, just don't play on the server. Its pretty much garenteed small changes like that will not replace the league's version, so thousands of professional servers will continue using de_dust instead of de_dustAWESOME~1!!--Red Comet 13:03, 5 Feb 2006 (PST)
- I'm all for sharing, but the point it comes down to is that you should ASK ME. You know what, if you do I may just even send you the .vmf if you ask niceley enough. All I ever want is credit for the work I've done and I dont give a crap what you do with it aslong as your not making money off it. Angry Beaver 13:11, 5 Feb 2006 (PST)
- Red Comet, I think it's very easy to say "who cares, just ignore it." In theory, yes, it can easily be ignored - but realistically, it usually isn't. I've seen it happen, and the reaction is rarely indifference, but rather outrage. Okay, I agree a league probably won't adopt an altered version, but what about the level designers who aren't aiming for popularity or prolific server rotations? They design for personal fulfillment, and seeing a mutated perversion of that goal is anything but satisfying. I think level designers have a right to try to protect their work, although I personally don't care to do so. --Campaignjunkie (talk) 13:28, 5 Feb 2006 (PST)
- Sure, they can attempt to protect it, but the thing is, Valve's current system makes almost all maps open source by itself. When one little program can just take apart the bsp format piece by piece and give you the working vmf, thats not what I call protection. The point here is that valve made a half ass system for protecting their bsp's and if you are a map designer you should know this and expect that people will be changing your maps. Just pretending the problem doesn't exist does not help anyone. Maps are just mods, so why are people getting angry that someone makes a mod of a mod. As far as I am concerned, you make maps to benifit the community, and when you release it, it belongs to the community. So when the community changes something on your map, maybe thats a sign, not to be angry, but to be thinking about why they made that change. --Red Comet 13:56, 5 Feb 2006 (PST)
- * Just because you CAN reverse-engineer the BSP format doesn't necessarily mean that you should - I hate to rely on a cliche, but "with great power comes great responsibility." Obviously, Valve doesn't mind having maps decompiled, but what about those who do mind? Write them off as casualties of this so-called progress?
- * When gaming magazines put maps and mods on their cover CD, they notify the author - not the community. When the author finally gets the lighting just right, or the architecture how he wants it, it's because of the author's effort - not the community. Let's be clear on who did the large majority of the work - the author. I think your position as lead developer of ProDoD blinds you to this idea, that level designers become emotionally involved with their work, and they don't want to see their child mangled by strangers. It takes a LONG time to make a great map, and that time comes out of the author's life. Don't forget that level designers are part of the community too. It's extremely disrespectful to decompile when they clearly don't want you to.
- * One can also make the argument that the community has no idea what the heck it's doing when it changes a map. The community is not a giant, unified mass of socialist idealism. It's full of egotistical self-serving players who want to give themselves an advantage by making their own version. --Campaignjunkie (talk) 16:22, 5 Feb 2006 (PST)
- The purpose of a mod is to change a part of a substance you find unsuitable to your goal. When DOD was created, it was because the team wanted HL1 to be more like WW2, when someone creates a map its because they feel the game needs a level where player's sit around and AWP each other. So how can anyone get angry when someone uses the same logic to change what you created. We are not being hypocritical are we?
- You can say that valve gives you tools to create maps and source to create mods, but then what about mods of games that do not. Like Wolfenstien, Jedi Academy, etc. Even games that do not give tools to modders eventually get some mods made, because people were not fully satisfied with the finished product.
- If you spend so much time working on a map then what is it for? The community. If you make a map just so you can be mentioned in a magazine then your map will lack personality. A prime example of this is DOD:S and CS:S --Red Comet 17:54, 5 Feb 2006 (PST)
- A mod is not simply made because someone is unsatisfied with the end product. i love HL2 for being HL2, but that doesn' stop me wanting to make a mod fo somethnig new and original. The DOD team did not start thier mod because they wanted HL2 to be more WW2, thats just crap. They started thier mod because they thought it would be a cool thing to do.
- Most maps and plans I have or ever make are for the simple fact "This is a cool thing i want to do and I'll hope everyone else agrees" I've never been severley dissatisfied with eitheir HL and have no inclination to remake them.
- The reamking of a work is completely personal perspective you can't share with someone unless thier values and goals line up theres one simple way it should be looked at though.
- Its completley irresponsible and disrespectful to take someone else work call it your own and throw it about for everyone to see. No matter the format no matter how you got it. Credit it to the author or permission is the only thing that cahnges this.
- The difference in the communities comes down to the line of how easy it is. Anyone mapping for something like unreal understands thier stuff is very easily accesible so they have already relegated themselves to this fact. In HL2 the map has been re-engineered so the engine can run and process it better with new features. We don't expect someone to come along and edit it so it shocks us.
- Valve doesn't care about decompiling because its always going to happen, no matter what checks the put in it will always come about, tis not like they encourgae it but their on the same boat as me and actualyl give out .vmf's. Don't blame valve for not wasting time and effort in futility and dont blame people for poking aorund something they obviously appricate. Only get angry against thosoe who try to steal your work by calling ti thier own. Angry Beaver 21:00, 5 Feb 2006 (PST)
- Going back to the original comment, map decompiling (or rather, editing others' maps) is actually an incredibly contentious issue in the Unreal communities that leads to lengthy arguments. Almosy every Unreal modder I've seen seen discussing it would prefer a closed system any day. --TomEdwards 01:19, 30 Aug 2006 (PDT)
- Look, some of these arguments are pointless... mapping for any Source game has it's drawbacks, one being it is an underpaid and sometimes unappreciated job. However, you as the author of the map you just finished (after months of blood, sweat, and tears) need to come to realize that the moment you post it on a public domain it is up for grabs to anyone willing to take the time to extract it. It is progress...because those people usually end up grabbing ideas from some of the most brilliant minds in Source mapping to date (including the professional paid ones) and making their own map with it. At which point, someone else comes along and does the same thing to that persons map... If you don't believe me look at some of the maps on Garry's Mod and then try to tell me that mapping has not progressed from the first maps like cs_office, de_dust, and fy_poolday.
--[[Jerms12121] 10:36, 1 July 2009 (MNT)]
What about converting maps?
I have a question: If there is a good map for one mod or even retail game, is it ethical (or even legal) to decompile the map and change a few entities to make it work in another mod or game?
Example 1: Someone really likes playing in cs_office, and they really like DOD:S. Could they decompile office, change the spawnpoints to DOD:S ones, and release the modified map? (This brings up copyright issues, as not everyone with DOD has CSS)
Example 2 (this is the one that got me intrested): Someone is making a HL2DM mod, and has made enough changes that normal DM maps no longer work in a playable way. Could they decompile all the DM maps, fix the weapons and such, and release it with the mod? There would be far fewer copyright problems, because you would have to have the originals to play the mod.
Example 3: Say Black Mesa finally comes out, and a group decide to remake Op4 based on it. While making the deathmatch mode, they decide to include modified versions of the BM maps, with the team's permission. Legit?
- Example 1 would be a breach of the EULA, so it couldn't be done legally
- Example 2, again, it would be a breach of the EULA. Distributing anything that is copyrighted without permission is illegal - IIRC theres a page somewhere on the WIKI that deals with distribution of assets from CSS (or other Valve games) with HL2 mods.
- Example 3 is fine because they would have permission from the creators, but I'd get it in writing before anything.
- Wraiyth 23:59, 29 Aug 2006 (PDT)
- I talked with a guy from valve and he was 100% against decompiling the standard maps. I was going to attempt to 'fix' the stock dods maps since they had so many exploits that the dev team said they would not fix, but he told me flat out that valve does not want any decompilization of their stock maps. --Red Comet 09:01, 31 Aug 2006 (PDT)
What about massively changing it, using only a proven layout for the map, changing all textures, models, and some side passages and such, so that it is only recognizable to those who have played the map since they were born. Gman003 12:12, 16 Dec 2006 (PST)
- The issue is distributing content to thoose who should not have it. The general layout of a level does not fall under that scope as the layout is a form that the content takes, not the content itself. If all you do is duplicate the layout of a level then no your not breaching anything. If you decompile a level from valve, then your breaching the EULA no matter what you do with it. --Angry Beaver 12:27, 16 Dec 2006 (PST)
- I don't see how just decompiling a valve map is breaching the EULA, simply because the source SDK includes the vmfs for some of the maps directly from hl2. --Quanta 20:05, 29 Jun 2007 (PDT)
- "I don't see how just stealing a sausage roll is breaking the law, simply because the store display includes the free samples for some of the sausage rolls they sell.", regardless of that i remember there being a sentence in the EULA agreeing that you would not modify of decompile their work. If I could find the EULA I'd pin it down. If I'm wrong and valve doesn't mind decompiling then great I'll stop telling people not to do it because its illegal and start telling them not do it because theres better ways to learn it. --Angry Beaver 21:18, 29 Jun 2007 (PDT)
It seems to be very common, however, amongst mod teams. SMOD: Tactical decompiled, modified, and distributed every level of HL2. GMod9 had a decompiled dm_lockdown for melonrace. And what about converting hl1 maps to source? I bet BMS is doing some of that.
- don't know about smod, but I know that BMS is making all their own levels. Not taking and skeletons from hl1, and I am glad for that. Plus I think you are mixing up decompile with modding, sure dm_lockdown in garry's mod might have looked very different, but you can do all that code-wise. You can create an entire level with just code so its not impossible to change an existing level however you want. I am sure this is what SMOD and garry did, not decompile and redistribute. Unless of course the installed for these mods actually came with map bsp's. --Red Comet 20:14, 7 Jan 2007 (PST)
- Maps for SMOD are NOT decompiled or converted. They use a system of script files that place entities and events into the existing maps.--Fitzroy doll 02:39, 25 May 2007 (PDT)
- I'd like to point out that no decompilation is required to change the entity section of a map. There are a few tools available for doing it, they just modify the entity portion of the map (which is plain text), and this contains all entity IO functions. --Daedalus 05:39, 25 May 2007 (PDT)
Checking
If you decompile a map just for a small set of brushes, to maintain continuity with established canon, is it OK?
The specific instance I'm looking at is the Stalker car in the Combine train in Episode 1. I decompiled the map (surprisingly tricky), pulled out the brushes for the train, modified it a bit, and fixed up a texture. I may also end up converting it to a model, so the ragdolls work correctly.
It seems to be OK, I just wanted to check first.
--Gman003 08:23, 21 May 2007 (PDT)
- While reproducing the train and details is not an issue using decompiled work is. You can reproduce the train but you can't decompile to get it. --Angry Beaver 10:06, 21 May 2007 (PDT)
- I'd like a second opinion. I see nothing wrong with taking a couple brushes out of a map, especially with the amount of change I made. --Gman003 18:32, 24 May 2007 (PDT)
- Its not like its a medical diagnosis, its the letter of the agrement you said you agreed to when you installed the SDK/Game. Decompiling and using anything thats decompiled is bad. Its like saying you only stole a little so it shouldn't count. --Angry Beaver 22:34, 24 May 2007 (PDT)
- Do what feels right for you - everyone's going to give you a different answer. At the end of the day, the question (for me, at least) is "what is the relative value input of what I am creating, versus what I have taken". If you've added very little value, then you're being a hack. If you've added most of the value, then there's nothing ethically wrong with what you've done. Be sure to give credit where credit is due, for anything you publically release.
- From a technical standpoint, I wouldn't use the brushes that you get from the decompilation. There's every potential they are a bit scrappy. Rebuild your own model over the foundations of what you've decompiled. --Giles 16:25, 26 May 2007 (PDT)
- Hmmmm... this is tricky... In UED I used to sometimes copy and paste parts of a level, like triggers, to get an effect. Anyone remember the Junkyard Pipe colapse? once, I used the triggers as a base for some library shelves collapsing. But, If you find one that needs to be Decomipled to even look at in hammer, you definetley need to at least say thanks to the original creator, if not ask permission. --JeffMOD 16:58, 2 Apr 2008 (PDT)
Edited some parts.
I went ahead and put in the folder info for Portal 2, Left 4 Dead, and Left 4 Dead 2. --Bitl 16:02, 16 February 2012 (PST)
Some of the links are dead.
the only working link is winbspc, i wanted to decompile and combine hl1 maps for gmod but i don't want to deal with large unorganized blocks.
not all of the links are in the wayback machine, makes it harder for me to find the program. --Whynotll83 (talk) 19:27, 18 September 2020 (UTC)
Anti decompilation edit war
(This is mainly directed towards User:FrozenH2O and their recent edits to the header regarding anti decompilation tools)
This isn't getting anywhere, I thought if I let your version of the page stay up for a while you'd forget about it but clearly not. You claim that I'm "forcing my morals" onto people, but if anything you're doing that by replacing a line that's been on this page since long before I ever made any edits to it. At least in the parts of the Source community I've interacted with, people's maps being "stolen" as a result of decompiling is something that almost never happens, with most people who decompile doing it because they want to see how some specific logic works or the like, not to modify the map and claim it as their own work. For that reason, using tools to prevent/hinder decompilation is often considered not only pointless, but a dick move. This isn't a competition, nobody is making money off of this, there's no reason you need to keep your map's internals this ultimate secret.
That being said, anti decompilation tools do exist and it's probably worth talking about them on this page, even if just for completeness sake. But that should go in a new section or the like, there is no reason it should replace the line about "most players decompile to learn rather than steal", because as I explained above that is something that is true throughout the vast majority of the modern Source community.
I also want to adress Stripper:Source, its capabilities and its limitations, because you seem to be under the impression that it's some magical tool that can make it completely impossible to decompile any map. The fact is, it's only usable in very specific situations: when a server is running an "exclusive" map which isn't available for download anywhere outside the server itself, in which case you can modify the BSP that clients download to have an empty entity lump and use Stripper:Source to add them back separately. That doesn't technically prevent decompilation, but makes clients' copies of the map (decompiled or not) nearly useless by excluding all entities, which in most cases is close enough.
In all other cases though, if the map is publicly released for use on any server (whether by Steam Workshop, mapping forums, or anywhere else), this no longer works. Even if you installed Stripper:Source and did the same setup on a server it would be useless, because players could just go find the place where the map was originally released and download the full BSP. I guess if you distributed the BSP and Stripper:Source config file together it would make it a bit less straightforward to decompile, but entities in the BSP are stored as text in almost the exact same way as the Stripper:Source config file so it wouldn't be hard to just merge them back in and do a bit of find and replace, then decompile. Even this still wouldn't be viable for singleplayer games which, while they do usually support server plugins, players likely won't want to or know how to install them, if they even work properly.