GMove - Release Preparation

Hey all, I know some of you have been wanting this for what feels like a long time, but it’s not quite here yet.

I rewrote GMove from scratch, and made it more lightweight, efficient, and stable. It is only a framework right now, so there are no GMoveTypes included yet. I am looking for Lua scripters who want to make some GMoveTypes for this to be released with it.

For those of you who don’t know what GMove is, it’s basically like a second MoveTypes system. You know how you can do stuff like Player:SetMoveType(MOVETYPE_NOCLIP)? Well here you define your own custom MoveTypes called ‘GMoveTypes’. You do this by writing a file and filling in the GMOVE methods provided which are called from their respective gamemode hooks. You can then set the player’s GMoveType by using Player:SetGMoveType( strName | Enum ).

It’s a simple concept, but it makes complex player movement logic a lot easier.

Anyhow, I don’t have the time to program a bunch of awesome movetypes for this, so I’m turning to the community on this one. If you think you have what it takes, post here and I’ll PM you the download link with instructions (at my discretion).

Could I get a copy? :buddy:

Check your inbox.

This makes my pee pee hard, may I also have a copy?


I took a quick look at the code, and I must say this is beautifully clean.



Thank you. I’m always worried about my code being inelegant. :buddy:

I hope it means something coming from the guy who’s anal retentive about whitespace.


Googled “anal-retentive” for fun:

Number 3 from the “Top 5 signs you are anal-retentive” “You look up anal-retentive to see whether it needs a hyphen.”


I just got some nice ideas. Can I have a copy too?

Yh , I would like to code with with you :slight_smile:

I would like to try it out.

I won’t be giving this to people who don’t know Lua. At the very least, you’ll need a basic understanding of the CMoveData object and how it works.

I’m still unclear as to what this can do. Moderate example scenario or code for a basic movetype?

Suppose you’re making a gamemode with a few special abilities: Wallrun, walljump, and wallclimb.

If you were to do it manually, you’d end up with either 3 move hooks, or one giant move hook with a bunch of conditionals inside of conditionals. That gets messy and hard to read.

With GMove, you’d have a separate file for each one where you define how the player moves while the movetype is active. Then in your gamemode, you’d just do player:SetGMoveType(GMOVETYPE_MYWALLRUN), and it would seamlessly change your movetype and handle that larger determining logic for you.

Things you can define in your GMoveTypes:
[li]Movement with SetupMove, Move, and FinishMove
[/li][li]CUserCmd with CreateMove
[/li][li]Player view with CalcView
[/li][li]Whether it is allowed to start and/or finish.
[/li][li]What to run on start and finish of the movetype.
[/li][li]What can interrupt it.

The idea is we create the basic movetypes, my friend.

I’ll be flexing my brain for some creative ones today!

You could look back into the original thread for some of the suggestions on what to make:


I made a rolling movetype :smile:

Now to make a gamemode where players are Gorons :v:

Very nice. I hope you found the framework easy to use. :smile:

I would start to feel sick after a few seconds of it. Heh. Fun.

hope this isn’t as glitchy as before and works my console isn’t spamed with errors when I noclip.