Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics

Heavy Diesel Softworks

A member registered Apr 05, 2017 · View creator page →

Creator of

Recent community posts

No not at all, join us on discord! We just dont post here anymore. We are very much still active.

Its out finally! I will have patch notes up tomorrow.  If there are any bugs lemme know so I can get them hotfixed ASAP. If you are wondering what is next check the weapon master trello out!

Part 1

So this is the first part of a three part update on my attempts to make firearms in weapon master "feel" better to shoot. The goal has always been to attempt to trick the mind into believing you are firing a real gun. Obviously, there is always going to be a disconnect due to the lack of holding a real gun with real recoil and weight, but I think we can get it as close as possible with a little more work. For this first update I have overhauled Recoil to not only be better, but to give y'all many more variables to tweak things with. This is by no means the end of me perfecting recoil, but it is a big step forward.

The New Recoil
First off recoil is no longer instant. There is now a travel and rotation time. Also, directional recoil plays a much bigger part that it did before. You can also put a delay between rotational recoil and directional to better match real world recoil. Essentially when a gun recoils the muzzle moves up first due to the path of least resistance on your wrist allowing for the roll. Depending on how good you are at shooting this recoil can be more or less (in the real world). After this initial muzzle rise the recoil then moves backwards forcing your hand slightly back with a pistol, or much farther back with a long gun. For default in weapon master I assume the character is a competent shooter that can manage recoil very well. You can tweak this "character skill" by adjusting the recoil variables. Even taking a skilled character into account I have allowed for some "player skill" as well. You can fight the recoil much like you would in a game like PUBG by counter rotating. This is sort of a gamified solution and by setting variables differently you can completely remove it if you wish. 

A note about Variable Prefixes
All stats that can be adjusted by attachments follow this prefix scheme.
Base - the guns default value
Mod - the modifier value that comes from the attachment
Current -The adjusted value by adding Base and Mod together.

Recoil Variables.
Use Recoil - True if you want to use recoil for your gun.

Use Recoil Shot Delay (experimental) - true if you want to delay any recoil a set number of shots.

Shots to Delay - How many shots to delay if Use Recoil Shot Delay is true.

Recoil Direction - The direction the gun should recoil (Forward, Right, or Up).

Base Directional Recoil Amount - How far should the gun recoil in the chosen direction (negative for backwards).

Directional Recoil Rate - The speed at which the weapon should recoil directionally.

Directional Recoil Recovery Rate - How fast the weapon recovers from the direction recoil. How fast it returns to 0 state.

Base Directional Recoil Stabilization - How much stabilization should take away from directional recoil. Set between 0 and 1 where 0 is no recoil and 1 is full recoil.

Base Vertical Rotational Recoil Amount - (Range) How much the weapon should pitch per shot. Through testing I have found that while setting this as a range is fine you really should keep the numbers fairly close together. For example if your max recoil is 8 I would put the min no less than 7 but ideally around 7.5. The range is set up x and y so the previous exampe would be x: 7 Y: 8.

Base Horizontal Rotational Recoil Amount - (Range) How much the weapon should yaw per shot. This range should go be a negative for x and a positive for y.

Per Shot Recoil Type - Should the recoil be additive or subtractive? Basically should the recoil get worse every shot or get better.

Base Per Shot Vertical Rotational Recoil Amount - (Range) How much extra vertical recoil should be added per shot.

Base Per Shot Horizontal Rotational Recoil Amount - (Range) How much extra horizontal recoil should be added per shot.

Rotational Recoil Rate - Speed at which the gun recoil rotationally. The value of this is dependent on how much rotational recoil you have. Most of the time this should be between 90 and 120. Setting too low can lead to the gun's recoil getting really erratic. Setting too high can make the recoil feel "bad".

Rotational Recoil Recovery Rate - How fast the weapon recovers from the rotational recoil. Should be much less than Rotational Recovery Rate.

Base Vertical Rotational Recoil Stabilization - How much stabilization should take away from Vertical recoil. Set between 0 and 1 where 0 is no recoil and 1 is full recoil.

Base Horizontal Rotational Recoil Stabilization - How much stabilization should take away from horizontal recoil. Set between 0 and 1 where 0 is no recoil and 1 is full recoil.

I have a few more ideas that I will try in the future to make recoil better. Update 2, which I hope to get to while finishing up Beta 3 of 1.1, will be an update to Bloom logic and Rumble effects.

Sorry for the delay.

You have to remove the branch in the movement input section of BP_VRCharacter that requires Thumbpad down to continue as well as remove an identical branch at the beginning of event tick. I will provide a tutorial on Monday to show how to do this and keep some other logic intact (its a bit more complicated than just deleting things.

Is this something you would wish to have as an option in future versions of weapon master vr? 

(3 edits)

I am starting a tutorial series that will cover WMVR topics and user issues. If you have something for me to cover post it here and I can add it to one of the sessions. 

You can join me as I do the tutorials live on twitch 2:30ish - 5ish pm every Monday, or watch the recaps when I post them here after the stream. Dont forget to follow me on Twitch (@TheRedfoxx777 ) or my twitter to get updates on when tutorials and other dev streams are going live. 


Weapon Master Basics Episode 1: Basic Static Mesh and Skeletal Mesh Pickups

Weapon Master Basics Episode 2: Creating a Melee Weapon From a Static Mesh

Weapon Master Basics Episode 3: Bows and Arrows Part 1

I have released a new version of Weapon Master VR. 1.0.4 is compatible with UE4 4.17 and contains preliminary Oculus Rift Support (may be bugs or missing features). Full Oculus Touch support is coming in 1.1 (including advanced features). A beta for 1.1 will be posted here in a couple weeks time. Sorry for the delay of 1.1 but the wait will be worth it. 


If you purchased Weapon Master VR on before July 6, 2017 you are eligible for an Unreal Marketplace version of WM.  Please msg OneShotGG over on the unreal forums with the email address you use here on and the email address for your unreal account. 

DO NOT post your information here on itch. 

Hey everyone I am going to be live streaming Weapon Master Development Mon-Thurs 2pm-5(ish)pm CST from here on out. The stream is primarily about the development of new features but I will be doing some live tutorials and answering questions for those that have them. 

If you cannot make the steam I will be linking videos here so you can watch them at your leisure. 

Thanks so much for all of  your support and we hope to see you on the stream!



Explanation of Scope Logic and Magazines. Also New Mag system development. Video

Just want to let yall know that alot of tutorials will be coming during twitch live streams. I will link those videos here as well as the more focused youtube ones. 

That is odd. Currently Zumbie is not using epic's skeleton. We are going to be switching him over very soon (likely between 1.1 and 1.2) which should help with retargeting issues. Current zumbie isn't finished and we only included him for demo purposes. If your mesh is floating that is likely due a difference in root bones. When we move to the epic skeleton this issue should be fixed providing your mesh also uses epics skeleton. 

The MP  version of 4.16 should be coming out very soon. I sent it to epic last Monday, they are just super slow. The version will require manual updating which could cause you to lose work. Thats sort of the trade off between the two. = fast iteration but manual updating. MP = slower because of epic but automatic updating. 

Epic does not provide any information about the people that purchase our package (that I know of).  MSG me over on the forums (I'm OneShotGG) and I will see what I can do. 

Sorry for delay response. It is currently not oculus ready. We hope to have Oculus support with 1.1. You may want to wait for that if you require Oculus support. 

With 1.1 I am going to add in Oculus controls and if I can get a hold of a rift with touch I can make it fully ready. If I cannot borrow someones oculus + touch I will only  be able to set up the controller buttons to work. When we get closer to 1.1 launch I will let yall know if we are going to have full support with 1.1.

Right now there is no Oculus support. 

Updates will continue here on itch no matter where else we sell Weapon Master Vr.

You choose which one is best for you with no worries :D. 

I am so glad I was able to help, and thank you so much for your kind words! Feel free to check us out at our UE4 forum page when you get the chance. Its the most active right now

Question: What do you have the skeletal mesh parented to? 

There are a few ways to add a body to the player character that will work depending on what you are going for.  

1. Go into the dummy mover blueprint and set your skeletal mesh to the one that is part of that heirarchy. The Dummy Mover is just a regular character BP like the ones found in the Epic's Third Person and First Person templates. 

2. Parent it to root of BP_VRCharacter and set its location and rotation in Event Tick of BP_VRCharacter. 

3. Parent to the same capsule that the inventory objects are parented to in BP_VRCharacter. 

I would not parent to the HMD at all. 

I should add that I have not tested this yet, I was planning on adding an optional player body as a feature in 1.1 or 1.2. It may require some more scripting to get it to function correctly.

(2 edits)

Your npcs need to target the BP_AI_Target for right now, in the future they will be targeting the dummy mover. Is that how you have them set up?

If you have them targeting the player actor (which is how most targeting is done in Unreal due to how they have the AI blueprints set up) they will shoot at the center of the roomscale playspace because that is were the "Player Actor" technically is. This could be to left or right of you depending on where you are standing.

This is where Epic's definition of "actor" and roomscale VR don't exactly mesh up. To fix this we need to spawn a targeting actor (in my examples the BP_AI_Target) and move it along with the camera's position in the roomscale playspace (The player's position). This is done by default with Weapon Masters character.

If you go into the BP_AI_Target you can turn on it's sphere collision components visibility to make sure it is following you correctly. This can be helpful in debugging the issue. At this point your AI just need to know that they should be looking for this AI_Target actor and not the player actor. Make sure to show your AI's attack line traces so you can see where they are trying to aim (also great for debugging). Once we figure out what they are aiming at it will be easier to see what the issue is.

Are you using your own AI or an asset AI? When I get home today I can show you where in the zombie AI I set the Target they are looking for, maybe this will be similar with your AI and an easy fix!

(3 edits)

Tutorial #1: Weapon Master VR Character System

Tutorial #2 Part 1: AKM Magazine Firearm Maya setup.

Tutorial #2 Part 4: AKM UE4 Initial Setup

Tutorial #2 Part 3: AKM Blueprint Setup

Version 1.0.2

Bug Fixes:

  • Firearms will no longer continue firing after being dropped.
  • You can no longer have two ironsights on simple weapons. (Cuz that is OP!)
  • Collision channels streamlined and re-purposed.
  • Fixed bug where the arc of the teleport would disappear
  • Melee weapons should more reliably do damage when stabbing

New Features

  • In game Menu (BP_InGameMenu): press menu button on your off hand to open the menu. You can set Movement mode, Main Hand, Show FPS, Double Tap To Drop, and Dynamic Main Hand in the menu.
  • The In Game Menu saves your options and loads them every time you start playing.
  • Knife melee weapon added
  • AI Can now support death animations and turn off Ragdoll.

New Level

  • New Tutorial level added with some explanation of the features of weapon master vr.


  • Due to problems with epic's teleportation and our zombie level I have further expanded upon the teleportation logic. If you want to use epic's navigation based teleportation in its stock state you need to set bUseOriginalTeleportation to true in the Movement section of BP_VRCharacter variables.


  • New functions: LoadVariables, SaveVariables, SetVariables, StartInGameMenu, StopInGameMenu
  • New Variable: bUseOriginalTeleportation- Set to true to use default epic's teleportation.


  • Melee weapons can now have two grip rotations.
  • Melee weapons can now be holstered.
  • New Variables: bUseSecondaryHold, SecondaryHoldTransform, Holster Sound
  • New Functions: AttachToHolster, DetachFromHolster, SwapHoldType


  • new bool variables that will help you handle characters dying with animations
  • bUseDeathAnimation: true if you want to use a death animation
  • bUseRagdollDuringDeathAnimation: true if you want to use a ragdoll at some point in the death animation. Note: You will have to call PointDamageRagdoll, or RadialDamageRagdoll, events from notifies in your animation to get this to work right.
  • BapplyImpulseOnDeath: Whether or not you want to apply force on a character upon death.

New Blueprints

  • BP_Console: Used for setting up the demo room consoles.
  • BP_InGameMenu: In conjunction with new Wiget Blueprint WB_InGameMenu the in game menu functions!
  • BP_WMSave: Save state blueprint used for saving and loading options in the menu.
  • Struct_PlayerOptions: Easy way to organize options for passing to other blueprints.

Other Changes

  • At metric ton of work has gone into commenting and organizing weapon master for sale on the Market Place. Everything should follow a fairly obvious naming scheme which should be great for those of you using source control!

Overview Video

Weapon Master VR 1.0.1 Patch Notes


  • Now extends from motioncontrollerpawn in Epic VR Template
  • Now has 4 movement modes (Teleport, Simple Move, Directional Move, Directional Teleport)
  • Supports Left and Right handedness
  • Main Hand variable sets what the main hand is. Main hands are defined as the hands that can hold weapons that use the trackpad. Off hands are hands that can do movement.
  • bUseDynamicMainHand will allow the player to dynamically change which hand is the main hand based on what hand they pick up a weapon with. Note: This feature currently doesn't work when unholstering but will in 1.0.2.
  • MovementModes array is where you set the desired movement modes for the character. MovementMode variable is the starting mode and the current mode.
  • All button logic is passed onto the VR_CharacterHand blueprint to handle (Two of these are spawned at begin play.
  • VR_Character overrides motioncontrollerpawn's begin play but sets things up almost identically.
  • Player data hand now dynamically attaches itself to the current off hand.
  • New Functions: InitializeUI, SetPlayerDataHand, ChangeMovementMode, InitializeMovementMode, SetMainHand, GetOffHand.
  • New Variables: RightHand, LeftHand, MovementMode, MovementModes, MainHand, bUseDynamicMainHand, DoubleButtonToDrop, PlayerDataLeftHandAdjustTransform, PlayerDataRighthandAdjustTransform, 9mm_Ammo, Max9mm_Ammo, 762x39_Ammo, Max762x39_Ammo, 50cal_Ammo, Max50cal_Ammo, 40cal_Ammo, Max40cal_Ammo, 338L_Ammo, Max338L_Ammo, 300B_Ammo, Max300B_Ammo, 38_Ammo, Max38_Ammo


  • Extends from BP_MotionController
  • Handles all input calls to weapon master objects and VR_Template Objects
  • Overrides GrabActor, ReleaseActor functions of BP_MotionController
  • Overrides ActivateTeleportation function of BP_MotionController
  • Uses its own Rumble Functions that are based on the functions in BP_MotionController.
  • Two of these are spawned on Begin Play
  • Weapons you pick up are attached to the scene component Attach Point.
  • Trigger is now the pickup button Note: In the future I will add the option to have grab be the pickup button again.

BP_PhysicalMagazineFirearm and BP_SimpleFirearm

  • Simplified stabilization logic that now should keep from unwanted stabilization events being called.
  • Added in an AttachmentMode (Main hand menu button) that will allow you to remove attachments. Note: Attachments cannot be removed if attachment mode is not on.
  • SideAttachment Illumination On/Off is now triggered by the right track pad button on the main hand.
  • Added in a lot of rumble events. Please tell me if you like them or not.
  • New Functions: CheckForAttachment, SetAttachmentZoneVisibility, ShowAllAttachmentZones
  • New Variables: bDetatchmentModeOn, HandInteractionIntensity, HandInteractionDuration, WeaponInteractionIntensity, WeaponInteractionDuration, WeaponFireIntensity,WeaponFireDuration,WeaponReloadIntensity, WeaponReloadDuration.


  • Attached to hand event logic
  • New Function: CheckOppositeHandForWeapon


  • Rumble added to the bow string
  • New Event: Rumble Timer
  • New Variables: MaxPullIntensity, FireIntensity, FireDuration, MaxPullDuration.

BP_MeleeAI_Character (Name Changed)

  • under AI SetupVariable Group Added AIMesh and AI_AnimBlueprint variables. Note: These are part of an engine bug workaround that deletes mesh variables every time the engine is started. Hopefully this is fixed soon and this workaround can be removed.
  • Set AIMesh to the desired mesh for AI
  • Set AI_AnimBlueprint to the desired animation blueprint for the AI


  • In order to get teleport to work correctly I had to bypass the navmesh part of the Trace Teleport Distance Function and set the return value bool to return node success.
  • Create downward vector set to -2000 instead of -200 to properly find floor when hitting a wall
  • Both changes are easily reverted, if you need to know how please ask.

Version 1.0.2 is up next, and will include some cleanup that epic wants us to do before market place release along with a few new features, and whatever fixes come up. I will talk about this more in the near future. Tutorials will also start to pop up on our youtube channel over the next week so stay tuned. Please remember to give as much feedback as possible!

After 1.0.2 is finished, and Epic accepts it, we will start on the big 1.1 update that will include new features including bolt action weapons, advanced scopes, red dot sights, more attachments, attachments affecting weapon stats, simple firearm improvements and more.

Yes, that will be a feature we support in the future. We are trying to get some trackers so we can add it in, once we get some I will begin doing so. As for when, well that depends on if we get some through a developer deal we are trying right now, otherwise it will have to wait until we can afford them :P.

Thanks so much for the feedback. The patch coming out tomorrow should start to do some of what you have asked. I will be constantly simplifying and streamlining things as we go. The inventory right now is sort of a working prototype. In the future I want to have something way more user friendly, possibly something with a UI backpack as well for carrying items. I will look into splitting it off into its own thing.

Be sure to check out version 1.0.1 we are dropping tomorrow. It improves and changes a lot.

Well you are in luck because the next update is changing weapon master to extend from epic's vr template just as you ask! It is in testing right now and should be out in a few days.