Sorry, but i haven’t used free models for along time, and im very afraid of viruses. Could you can send just code instead? (Or just familiar Suggest in a DevForum) Just i want to learn and make games, not like just using free models that 20% can have viruses
In the StarterPlayer object you can set the CameraMaxZoom to the same as CameraMinZoom which is 0.5 which will force the camera into First person and the players wont be able to zoom out.
Create a new Model or use the one you currently have (Make sure to name it “FPS”), After this, You’re gonna need to create 2 Parts, One named “CameraBone” and the other one “HumanoidRootPart”, After you do this, Make sure to make both Parts invisible, Anchored and non-collidable (CanCollide = false)
Doing that, You are gonna create 2 Arms, The right and the left one, Make sure that they’re facing the same direction as the CameraBone. Then we’re gonna go into the Welding part:
Create a Motor6D inside CameraBone - Make it’s Part0 CameraBone and Part1 HumanoidRootPart
Create a Motor6D inside HumanoidRootPart - Name it “LeftArm” and make it’s Part0 the HumanoidRootPart and the Part1 the LeftArm
Create a Motor6D inside the HumanoidRootPart again - Name it “RightArm” and make it’s Part0 the HumanoidRootPart and the Part1 the RightArm
After you do this, Click on your model, Find the “PrimaryPart” inside the Model’s Properties and make it the HumanoidRootPart.
After all that, Create a new LocalScript inside StarterPlayerScripts (StarterPlayer > StarterPlayerScripts) and name it “FPSController”, Put the FPS Model inside of it, And then paste this code inside the script (Make sure to remove anything inside the Script before doing so):
-- Variables
local RunService = game:GetService("RunService")
local RenderConnection = nil
-- Initializing Model - Get the model and parent it to the Camera
local ViewportModel = script:WaitForChild("FPS")
ViewportModel.Name = "LocalViewportModel"
ViewportModel.Parent = workspace.Camera
-- Rendering:
RenderConnection = RunService.RenderStepped:Connect(function()
-- Make sure the Model exists
if ViewportModel then
-- Set the Model's CFrame to the Camera CFrame
ViewportModel:SetPrimaryPartCFrame(workspace.Camera.CFrame)
end
end)
You can also change the Camera Distance inside StarterPlayer to 0.5 (Min and Max) So it will be on First Person by default. If you want to know more about how to create your own FPS Arms/Framework, Take a look at this.