Defragr: Strafe jumping in UE4

Hi guys!

I have been a massive fan of skill based and competitive games, especially Quake, and I spent soooo many hours just playing Defrag (a Quake 3 mod) just getting the perfect run. A while ago I did a handful of videos where I showed off a Quake 3 port to Unity and later decided UE4 was a more mature step into making this an actual game I would like to release.

A year or so ago I began porting Quake 3 to UE4. The results after days of really hard work were horrible and I kinda lost interest. I forced myself to re-port the engine into UE4 after a number of months and found new motivation for the project. 2 days ago I decided to actually show what I had done and made a YouTube video on it. I also released the source (

My vision is to create a community driven competitive precision movement FPS that’s free to mod / play / diddle with. I hope I can also inspire spin offs like an Action Quake remake or even an open source Counter Strike clone.

inb4: Yeah I took the Defrag name and added an ‘r’ on to the end of it - Defrag Revival. Hope the magnificent French ******* who came up with this name will forgive me.


I found your project about the same day you posted it up online (I recognised your name from your videos on Unity strafe jumping). I had previously for about a month, been porting over something similar to UE4 (Quake 2 based movement) using my own custom movement, overriding select methods in UCharacterMovementComponent, such as CalcVelocity. I wasn’t entirely happy with how it handled, it needed more work and understanding of the engine. I much prefer your cleaner approach, inheriting from UPawnMovementComponent. I only discovered UE4 about 5 weeks ago, so I’m still learning the engine; so far the journey has been amazing.

Your project is something I could certainly get behind. Two things caught my attention, strafe jumping and Action Quake 2.

Things I’ve worked on since picking up your project:

  1. Importing Q2 maps (only geometry, for now) into UE4 with correct sizing (scaled from Inches to Centimeters)

– Allows for a combination of both original maps, updated original maps and entirely new maps made in both Q2 and/or UE4 (I’m sure Q1 and Q3 maps too).
– A box brush in Q2 of 64x64x64 units, will be the same units in UE4 (ignore inches and centimeters).
– Keeping the ‘units’ the same as Quake adds simplicity - working with the power of two: 1, 2, 4, 8, 16, 32, 64, etc.
– The UE4 level editor fully supports power of 2 (by default it’s set to use base 10).
– Keeps movement speeds consistent, moving at a velocity of 300 across 64 units will result in the same distance covered per second.
– Consistency!

  1. Player size, view height, jumping and crouching variables

– For this I created a simple Q2 map to test collision height, view height, crouch collision, crouch view height and jump heights; then ported into UE4. The result was 1:1.
– Player size and view variables will match that of Q2 and work in all maps ported across.

  1. Movement (ground, air, strafe)
    – Modified the player pawn movement variables to match Q2.
    – Will require some code changes to allow for the slight difference of movement handling in Q2 vs Q3.
    – Can we perfect the movement? Ignoring the fact that Q2 and Q3 relied on good FPS to achieve maximum velocity.

Hopefully what I’ve said makes sense, and my understanding is correct. I’d love to see the movement physics 1:1 or near close (most likely the latter). Also, the idea of keeping consistency of unit sizing should help keep porting variables across much simpler, and cleaner.

TL;DR I’d love to see an Action Quake 2 remake, or contribute to Urban Terror being developed on UE4.

Very good job, good luck for the next, I really want to see more :slight_smile: !


I wana know if you are still working on this projet and how i can test it please?


The Cubed collision would be a huge asset to my current project, as well as the strafing. However, I’m C++ ignorant, whats the best way to add this source to my blueprint project? at the very minimum I’d like to simply use the box collision for my character root, I have the strafing pretty much down in blueprints. My character is a cube so having capsule collision is very hard to work with.

Otherwise, this is awesome!

Very nice project OP! I’d play that.

Sounds like very promising changes! Any chance you could share

is this still at thing?

Zinglish said: ‘‘Due to someone taking the source, uploading a ZIP of it and selling it online, I have made the repository private.’’

I’m looking forward to get source code too :]

Zinglish – Does this still exist, or is there any way of getting a hold of it? I absolutely don’t want to pay someone for your hard work that isn’t you so please let me know if anyone can help! I would love to be able to talk to you a little bit about this project and see some of the work you’ve done as it might be super useful for a project I am starting.

Sorry for resurrecting an old thread!