EasyFirstPerson: Drag-and-drop first person view models!

Have you ever tried to make one of those nice first person view model systems complete with camera sway, bobbing when you walk, etc. but didn’t have the programming knowledge to do so? Or maybe you know how to do it, but don’t want to have to write up custom code from scratch. Either way, EasyFirstPerson is the system for you.

Just add the script and watch as all the tools in your game now have that satisfying First-Person-Shooter view.

Not sure what I’m talking about? See the example below.

R15 rig before EasyFirstPerson

R15 rig after EasyFirstPerson

See R6 comparison

default R6 rig:

R6 rig after EasyFirstPerson:

Click here to play the testing game (it’s much smoother than it looks in the videos).

Get the model here:

Be sure to see the “README” file inside for installation instructions.

Features

  • Works with R6 and R15!
  • does not override animations! If your tool plays animations, they will still affect the view model arms as expected!
  • fully customizable! Easily pick and choose which sway/camera methods are applied.
  • Drag and drop functionality. Just Plug and Play.
  • all code is thoroughly commented, allowing you to see how the system works so you can create your own FPS camera systems.
  • Automatically applies the view model system whenever you go into first person view.
  • ability to customize the transparency/visiblity of the view model arms.
  • designed to interfere as little as possible with the pre-existing systems in your game.

.

check out my other open-sourced projects:

See my development portfolio

271 Likes

Woah! It’s really cool of you to open-source this! Making this kind of first person view is a real pain to get right, so I’m glad that there’ll be an easy way to just have it in the future. Props to you!
Alas, in the testing game, I found this bug:

If you zoom in and out quickly enough, you can trick the view into getting stuck on your camera. Kinda weird to look at, but it doesn’t seem like something people would accidentally do (they’d have to try for it). Either way, amazing resource!!

21 Likes

Amazing job, this could be potentially useful for any game, I can’t imagine any scenario where the default first person of roblox looks better than this. Although a custom First Person Viewmodel could allow for best compatibility with a game’s weapons or so, this is an easy and simple solution, and it seems to be more than enough for any game that can be played in first person.

Will definitely use it! :heart:

9 Likes

Thanks for the feedback! The problem has been fixed.

11 Likes

Update

Fixed a ton of bugs that people sent me, also added new feature that allows this system to work when the camera is locked in first person.

Seen a bug In the system? Shoot me a message here on the forum and I’ll fix it in no time!

14 Likes

It seems like there is a LOT of issues regarding tools and first person, which kinda defeats the purpose of this if it doesn’t work.

Big bugs to note:

  • Walking into a seat with a tool equipped will cause players tools to fly across the map at fast speeds, but it only shows to them. Upon getting up, it continues until you go out of first person and back in first person.

  • Melees with Touched functions that damage humanoids will damage you if you look down and use the tool or walk with it and used it, but that doesn’t occur in 3rd person.

Video: Proof of Bugs

I didn’t intend to put the code for this in my Vibe Game, I just inserted since I have a lot of admin tools in the game that I mess around with.

The first person camera can also get you on seats that are above you or are behind walls. I was simply walking, and when I looked up, it put me on the seat of my roof, when I didn’t even jump.

Update:
Turns out, jumping and walking will sometimes make your body parts fly across your camera at very fast speeds, and again going out of first person and back in will prevent the issue.

6 Likes

I have released over 10+ updates to the model over the past days which have fixed many of these bugs, so try deleting your current version and re-inserting the model.

My system wouldn’t have caused this unless your melee system is set up to allow damage to your character. adding a damage check like the one below will fix that.

if hitcharacter ~= mycharacter then
-- damage the enemy 
end

If this keeps happening after you’ve inserted the latest version of the system, it’s likely because other scripts in your game are interfering with the system like you said here:

Try re-inserting the system. If it still happens, message me on the forum with more details and I’ll get it sorted out.

4 Likes

Just inserted this today, so it cannot be that. Keyword from you is “past days”, and I just inserted it today.

That isn’t the case because all my tools don’t use any camera system manipulation. Just your generic average tool with a handle.

I’ll try this now, but I doubt it’d make a noticeable difference.

Also yes I’ll run a check on that tool. It’s just never happened before so I figured it might have been because of your module. I feel like any post should be left out in the open so other people can learn from it. Thanks :slight_smile:

5 Likes

It appears the latest version of this fixed the problem, but if it occurs again I’ll be sure to post back here. Thanks for the help.

5 Likes

How do I make it so that certain guns have 2 arms?

3 Likes

I think I found a bug…

Learning how to fly (video)

I’m not sure if this is a Roblox problem or an EasyFirstPerson problem, but animations are definitely a part of it. The guns are made up of two non-collidable, massless parts that are rigged together, and the guns are also rigged to the right hand of the character to give me more control over the animations. I know this isn’t the cause, though, since the same problem occurred when I tried using the original single mesh models for the same guns without any rigging, and it didn’t happen at all when I disabled the equip and idle animations for the guns. My guess is that this is due to roblox tools acting weird sometimes, but it didn’t happen with EasyFirstPerson Disabled or when in third person, so I’d say it’s worth looking into.

Edit: This also happens in the test place:

But wait, there's more! (video)

4 Likes

Just tried it, that version has the same flight bug.

1 Like

have you turned off cancollide inside tool parts?

2 Likes

Thanks for the report! After rewriting much of the system (and adding a bunch of cool new features) the bug is now fixed. The model has been updated - please re-insert the model into your game to get the updated version. Big thanks to @thienbao2109 for showing me a different method of creating the viewmodel

link to the model →

This topic is not the place to advertise modded versions. Please take this down.

3 Likes

Welp my post have taken down

Edit: I can finally use this model.

1 Like

Good update! I like the new jump sway feature. However, I do have some bad news…

oh no

The weird flight bug is still present. It’s harder to make it happen now, but it still happens nonetheless.

2 Likes

when you reset the view model does not work

1 Like

maybe it’s collide i guess?
idk how did that happen lo

1 Like

How do I use this? Is it for the player’s character or a viewmodel???

1 Like

Technically both. The system uses the real arms of your character and attaches them to a fake viewmodel HumanoidRootPart. This viewmodel is then attached to the camera and includes things like camera sway, walk sway, and other camera manipulations you might see in a typical First-Person-Shooter game.

All instructions for installation are included in a README script inside the model, and the system is designed to be easy as possible to implement into your current game without interfering with your existing game scripts.

The demonstration video included in the OP shows how the system looks when used in-game with your existing tools and other items being attached to the character’s arms.

If you need further help with the system or if you are having problems with adding it to your game, message me here on the forum and we’ll get it fixed :+1:

1 Like