A downloadable Unreal Engine plugin for Windows
Combine the best of both worlds when working on your 3D game!
The ease of BSP level construction with tried and tested tools can now be married to the power, speed and high performance of the Unreal Engine.
HammUEr (currently Windows only) is a plugin that lets you build your levels with Valve's Hammer map editor (VMF), Doom3's DoomEdit (MAP/PROC) or an idTech2-3(Quake 1-3 and assorted other games that use the engine with varying levels of success and no guarantee of perfect imports)-based tool like GTKRadiant, JackHammer or Trenchbroom (MAP). With just a few simple clicks, you can have them imported into your Unreal Engine project as a collection of meshes placed in your scene the way you want, where you want. Want to change something? Make your edits in your favourite tool, then save, re-import, and you're done.
During the importing process you can assign materials already in your project to the original material names, or if you have the source images - (TGA/BMP/PNG/JPG)/VTF&VMT/SHADER(Q3)/MTR(D3)/WAD(Quake1 & Halflife)/WAL(Quake 2) - you can import them into UE as material instances based on a template material of your choice, and let HammUEr automatically find and assign the right ones. Don't want certain materials to show? Mark them no-draw and HammUEr will automatically not build sides for them!
Want to start building a level in Hammer with your UE materials for true WYSIWYG level editing? HammUEr can do that by exporting your UE material textures to VMT/VTF combos for easy use in Hammer with one click.
Have Source models you created for your maps? HammUEr can bring them into Unreal Engine for you and places them where they belong.
Use overlays and decals? HammUEr will also import those for you.
All my Unreal Engine 4 plugins are in maintenance mode. That means I'll fix large bugs, and update to new engine versions when I have time, but don't expect any new features to be added.
While most of the functionality is robust and well implemented, there's a few things that are still freshly implemented and, while they seem to work fine with my battery of sample maps, could use more testing (Q3 and Doom3 support in the latest builds).
(Screenshots from @skacky's func_mapjam_5 Quake map and Portal Stories: MEL map imports are only supplied as an example of what the tool can do with your own maps. The plugin is not meant to be used to import maps from other games or help infringe any copyrights.)
You are allowed to use HammUEr to import maps, textures and models you created, or have the rights or some kind of written permission for, as you need to acknowledge multiple times in the plugin itself.
You are not allowed to use HammUEr to infringe anyone else's copyrights by importing their maps, textures or models, and redistributing or selling the result, because that would be theft and illegal.
Remember, you're responsible for anything you do with HammUEr, and I'm in no way liable for any fallout that might occur as a result of your actions.
This means no fan "remakes" in UE4 of someone else's game, people.
You're also not allowed to resell or redistribute HammUEr or any part of the code (not in the Runtime section) or library to third parties. You are allowed to make modifications to your copy of the plugin source to integrate HammUEr into your own pipeline, though.
In order to download this Unreal Engine plugin you must purchase it at or above the minimum price of $42 USD. You will get access to the following files:
Log in with itch.io to leave a comment.
Is this compatible with Cinema 4D
Hey i have a lit`l problem. when i import the maps and change the normal textures in builk property erditor. is the texture corrupt do you know how to change it?
Ok. There is a problem with imported prop names. It cuts it for some reason.
Original prop name is "_autocombine_dust_chainlink_fence_links_167"
but it imported it with name "_autocombine_dust_chainlink_fence_l" and it created a placeholder with the right name after VMF import.
I'll make some changes to how HammUEr handles the waaay too short internal names for models in the next build, which should... hopefully go live by the end of the month.
I remember there was a reason why I kept it to the internal name by default, but I don't remember what it was, so...
Something is wrong. Too many props appear as red question marks.
Something similar happens to me, it just goes too slow or conjectures. Sometimes works but I'm having a bad experience, even if sometimes the problem is the name of the folder where the files have been imported, make sure it doesn't contain points and stuff (;:, /%). Possibly version, install previous versions of UE4
Why does UE4 always crash when I import a map
I'm trying to import my map's VMTs and VTFs, but it just won't take the VMTs into Unreal 4.19. All VTFs make it in and are turned into working materials, but it refuses to work with VMRs, which my map needs. Love to hear back, thanks.
im trying to find where i can download it again, pls hel
Think it depends on what your brushes look like, how you used the nodraw options for them and if they're grouped or not. There's also smoothing/normal options on the ConfigUEr tab you could experiment with.
Other things you could try on the UE side is to maybe join the two meshes together, and let UE recompute the normals itself.
Are Source games supported (like HL2, CS:S and CS:GO) or only GoldSource?
Cant i just get any valve game for free and get this for FREE
No? Many/Most Valve games are not "Free" for one... This is also not part of the Source SDK, it is HammUEr not Hammer. It is not modified Hammer, it is a Plugin you drop into UE4. You pay for the ability to put your Source engine maps into UE4
Any plans for 4.23 support? :)
Hi, i've downloaded the pack and imported everything, i've been running into an issue where there's a small amount of assets missing.
These are assets related to crates, fences and other small items that should be spread in other packs. In your introduction video you're also missing these.
Which Valve pack should i download to resolve this issue?
If it's your own game and assets, that's down to whatever engine licensing deal you have going on.
If it's not your own game and assets, then... no? Absolutely not? Because that's illegal and this shouldn't even be a question.
HammUEr is a tool to help people that are more comfortable working with old BSP-based level editors still use those in UE4 with its mesh-based workflow, that's it.
Hello,how to fix this crash ? its ue4 4.16 hammuer https://i.gyazo.com/b776bc2a53572cccb7594f2d69418326.png https://answers.unrealengine.com/questions/897990/view.html
Unfortunately, besides the fact that I'm not really supporting the 4.16 version any longer since it's over 2 years old, there's not much information in those images, so I can't really help.
Do you have an actual log?
I just have a little problem, how can you get the same blendtexture on unreal engine that I have on hammer ? ( for the ground ) My blend texture are just displaying little tiles and are not blended at all.
Is this plugin compatible with blend textures ?
Memory leaks found in source.
Source\HammUEr\Private\InstanceDataHandler.h(25) Source\HammUEr\Private\MapFileLoader.h(171) Source\HammUEr\Private\MapFileLoader.h(172) Source\HammUEr\Private\MapFileLoader.h(173) Source\HammUEr\Private\MapFileLoader.cpp(2143)
empty() call to std::vector is used, which checks if the vector is empty (returns bool), but your usages discard the value. You most likely meant to use clear(), which erases all elements of the vector.
That's what happens when you try to marry two systems that use the same term for opposite things.
Fixed in the 4.22 build.
Is there any way to increase the file name size/length for importing assets? A lot of the assets I import have half of their names cut out, which causes a lot of preventable issues with maps.
For example, when I try to import models with the names "stone_pillar_86_new", "stone_pillar_94", "stone_pillar_7", and "stone_pillar_73", their names get cut down to something like "stone_pilla". Whenever this happens, each model overrides eachother and only one of the models actually import.
Hello, dude I wanted to know how to download my plugin I no longer have access to my email. then I change my address for the next download or refund please on my card.
I can give you the last four digits of my bank car
This is something you should contact itch.io support for.
There's nothing I can do to help you.
some textures dont import. im trying to import hl2 maps plz halp. im using ue 4.21
Have you looked at the import logs?
Do you know which textures they are?
Is there something special about them?
Subject: Helping others with materials.
It is possible to emulate all (or close to all) graphical effects from the Source Engine in Unreal Engine. When I am done making materials that can be instanced I will share a photo of the setup if requested to.
So I'm having a problem while importing models, it gets to 25% and then it crashes. At 23% memory maxes out(32GBs) followed by my C drive maxing out at witch point it crashes.(I only have 23 Gbs left on my C drive) thing is UE is not installed on my C drive. My vault cache location is not on my C drive, My Project file is not on my C drive and i changed DerivedDataCache to off the C drive and it still overflows. Any Ideas?
Did a fresh install of windows so i had enough space, still crashes but this time at 45% and with no error message or crash report.
Can you try splitting the source directory up into a couple of smaller ones and importing those one by one?
That should at least help narrow down the problem somewhat, while also remove the need to reimport the same things over and over again.
what would we have to donate to get access to hammuer.lib source? There are some little things i'd like to change/fix/exhance, as well as actually be able to debug a crash that I'm getting when loading certain maps.
I think I may have figured out what the crash is though.
I believe in (vmfloader) info_overlay, you are parsing StartU/EndU and StartV/EndV as int, instead of float.
While it's more common for them to usually be 1 or 0, in the actual format they are float, and in some of our maps
[Edit] Yep, that is absolutely what it is.
I also added a "hammuer" function to vmf_tweak (one of the source engine tools, that i don't think is publicly released other than in alien swarm maybe) which goes through everything that uses a model, and gives it a targetname, to make it easier on the import since without hammuer.lib source we cannot parse for anything.
As an aside, if it's unwilling for you sharing for example github access to it, would it be too much trouble for you to MOVE the "mapentity" stuff into the plugin itself, and out of the lib? ie: ask the plugin for the translation of all of the map classnames, for each of the loader.. instead of hardcoding the entity types into the lib.. (that is one of the things I would do if I had access lol)
Another thing that I would like to do, depending on how you load all the brush faces anyway, is to introduce part of the CSG process, so all intersecting brushfaces get chopped up to discard all of the parts of the solid that cannot be seen.. would save a lot of pre-processing time with going through a lot of old maps and clip + nodraw everywhere ;)
Especially large ones like this:
Note, that the grid here is a lot bigger than standard (65k/65k) and this map fills up almost all of the normal source engine map size, horizontally anyway. lol. (we had/have a lot of large maps in TI, and our version of the engine/hammer increases a lot of limits..which is good for making stuff for unreal as well :))
My apologies, you're right about the info_overlay parsing, and the UVs should be correctly read passed through as floats in the 4.21 build.
Unfortunately, I can't release the source for the lib, and don't really have much time to do active development these days, so I don't see myself doing any major refactor work.
Would a basic thing for unknown entity types (or a separate array for all of them) that'd be a hashset or something that you can parse yourself on the UE plugin side work?
That's a little dissapointing, but understood. The entity thing is of much more concern for myself, and the simplest solution that I can see would be just adding an std::map<std::string, std::string> of every actual entity key to BaseEntity or something, even if you leave the default parsing that does the MapEntityType, then I can just intercept it in MapFileLoader::ImportIntoWorld, to read the original keyvalue for custom entities, and their values, by simply using GetEntity(x), and then looking at the KeyValue map for the original classname. (I noticed that all unknown ones end up falling under the static prop type as well, and the classname in BaseEntity appears to get overridden, I had actually tried to read that when I was first trying to parse custom entities, but ended up modifying VMFTweak to just convert everything to prop_static with a custom targetname ie: prop_dynamic_originaltargetname, or ropestart_xxx, ropekey_xxx) Which, works, and allows me to replace the actors post-import, but I'd prefer if I can just create the proper actors at import time, especially for some more complicated custom ones)
Thanks, and I really appreciate this!
There are many reasons that this should be updated for 4.21. This new version introduces better editing features such as editing meshes which should be of interest considering that this plugin imports brush groups as static meshes. This new feature allows the in-engine editing of which faces have what material so that if in Hammer you didn't do texturing because all of your materials are in UE you could then decide where materials go on polys in-engine. https://docs.unrealengine.com/en-us/Studio/Datasmith/HowTo/ModifyStaticMeshGeome...
The old version of this game engine also has a hindering ui bug. On windows the ui does not show drop down menus unless high contrast settings are enabled, (causes white text on white background in hammer in some cases) https://answers.unrealengine.com/questions/591961/drop-down-menus-not-working-in...
I am considering workarounds for the lack of an update do to so many more things being available on the newer engine. Perhaps using the plugin to import materials then opening the project with a new version to make a compatible copy would work for materials. And the perhaps exporting the scene as one fbx file, but I can only imagine the problems that would cause for lightmaps and optimization. It is a good idea to update the plugin because of everything your missing out on and using a newer version would be very difficult or just time consuming. (import map then copy to new engine "oops map has problem" back to step one)
When do you think that HammUEr will be updated for 4.21?
Does your plugin have a bias against importing materials that are not "Lightmapped Generic"? There seems to be a problem with the plugin that has costed me 71 days of my time and so it seems that I cannot find a fix for the problem without contacting you. Perhaps there is a known problem with the creation of materials that are of the type "cable" for example?
It seems that after trying around 5 different ways of importing materials and textures there is a strange issue that occurs such as lighting making my scene look like a child with a giant crayon was let loose and assumed the white lightmaps were a paper. If you are in need of the engine version I was forced to downgrade from 4.17 to 4.12.5 in order to start the plugin which costed me a few days of work I had already done only for the plugin to not actually import the materials I had made in the more updated engine.
This is a peculiar problem and as of today on 11/22/2018 I have come to the realization that the plugin may not know what to do with something that is not "Lightmapped Generic" casuing it to not create a vmt for materials labeled "cable" for example. Regarding the lightmap issue I have simply restarted my work several time to try to get a fix but now there isn't a lightmap problem anymore because what the plugin has done is create static meshes for the level but not actually put them in the level though I had an idea about what this was caused by and nope the brushes are indeed grouped.
I have created this account for the very purpose of contacting NT Entertainment and therefore I am new to this website and/or its way of functioning.
I have experimented to see if the bias is the case and it seems that after editing the vmt to say it is "LightmappedGeneric" it proceeds to import that material but none other. I want to know if you are aware of this bug involving that of discrimination from non "LightmappedGeneric" vmts.
EDIT: I have done this with all the vmts in the folder. Now the plugin creates a material for them.
I have no idea what to tell you, except that I can't reproduce your problem at all.
I just ran a test with a cable materials directory (so just "SplineRope" and a "$basetexture" field), and those all imported fine without needing to change or edit anything in the VMTs, so I have no idea what was going on on your machine. Any unknown types should default to the LightmappedGeneric handler anyway...
anyone gota solution for UE crashing when trying to import materials with hammuer , all vtx and dx90 /dx80 are deleted
i also have 16gb of ddr4 so i dont think ram is a problem
im trying to import csgo materials and it crashes at 0% rip
its been 21 days since i wrote this message and my problem is still not solved, this software cost me $42 usd and it doesn't even work
1) itch.io doesn't always send me emails when people post comments, so apologies for the late reply.
2) vtx files are model-related and have nothing to do with materials and textures
3) "it crashes" doesn't really help me debug your problem. Which version of UE are you trying to use? What does the log say before it crashes?
Hi! i'm doing some modding of Lineage 2 for fun and very interested in your plugin, i need to extract bsp's from l2 client, but L2 was made in ue2, could your plugin extract bsp from ue2 based game? If it's possible, i'll definitely buy it.
I'm afraid not.
HammUEr doesn't exist to import random levels from games, it was created to help level designers that prefer CSG brush editors over more recent model-based level creation workflows to get their work into Unreal Engine.
When I import my meshes non of them have textures wich means that when i import my map the map dosent have textures. It is something that I cant solve. No matter what. I even tried to re-import EVERYTHING again and still: Nothing.
I'm trying to import csgo maps on Unreal Engine 4.19.2
Which version of the 4.19 importer are you using? The fixed one?
Also, are you sure your material setup is correct?
This plugin rocks. It truly adds a new dimension to the ue4 editor.
I have a problem though. When I import one of my maps made in Trenchbroom, I get what appear to be overlapping vertices (z-fighting). Other maps from TB work fine. Can you recommend anything?
When importing models, will it also import the animations associated with them? Or will I have to manually import using crowbar, etc
Animated models only get imported as static meshes, since they're only meant to be references to get your scaling right, and not as a means of using content you don't own the rights to.
For your own animated content, you should have source files that can be imported by normal UE means.
I see, I understand. Some models may be released under a license that allows me to.
Thanks for responding, your software is great :)
I like this plugin alot however there is alot of import errors with models being completely gone or textures missing even after importing them correctly (CSGO) This happens on official and workshop maps. When i can i will post pictures
Has anyone tried this with Jedi Academy maps?
First off, thanks for this plugin, it's been a mega time-saver, and is bloody awesome.
Potential Future Feature Request:
An option for imported brushes (not displacements) to be created as Additive UE BSP, instead of auto triangulation etc. Unreal's format does allow stuff like removing faces, no all nodraw and stuff can still be removed. It could just be useful in certain circumstances to have the brushes in brush format, so they are editable in unreal after.
And of course, we can then convert them to static mesh from within unreal directly, later.
Oh, another secondary one: Have some way for us to define custom classes, so we can link entities <-> Actors automatically on import! Perhaps with a callback that passes stuff like the static meshes etc to the newly instantiated actor, to hook things up.
eg: In tactical Intervention, we have custom things like prop_breakdown and prop_hitzone. It would be coolio to be able to let hammuer instantiate a custom actor, instead of having to rename custom ents to prop_static so that they import in the correct place.
Thanks again for your amazing work :)