- --[[
- FE Camera by quirky anime boy#7003
- If you have BigCamera set to true: https://www.roblox.com/catalog/4932749347/RoPro-XL (80 robux)
- If you have BigCamera set to false: https://www.roblox.com/catalog/6782305429/Vintage-Film-Camera (50 robux)
- --]]
- local BigCamera = false -- true for Ropro, false for vintage
- local bigcamoffset = Vector3.new(0,0,0) -- rotation of the cameras, change to -90,0,0 for "portrait mode"
- local smallcamoffset = Vector3.new(30,0,0) -- play around with this value if the camera is angled too high/low
- local camtransparency = 1 -- 1 invisible - 0 opaque
- local plr = game.Players.LocalPlayer
- local char = game.Players.LocalPlayer.Character
- local ct = {}
- local te = table.insert
- local hatname = (BigCamera and "RoProBigAccessory") or "VintageFilmCameraAccessory"
- local hatid = (BigCamera and "4932749347") or "6782305429"
- local camhat = char:FindFirstChild(hatname)
- local camera = workspace.Camera
- function align(part, parent, p, r)
- local att1 = Instance.new("Attachment",part)
- local alp = Instance.new("AlignPosition",part)
- local alo = Instance.new("AlignOrientation",part)
- local att2 = Instance.new("Attachment",parent)
- att1.Name = part.Name
- att2.Name = part.Name
- alp.Attachment0 = att1
- alo.Attachment0 = att1
- alp.Attachment1 = parent[part.Name]
- alo.Attachment1 = parent[part.Name]
- att2.Position = p or Vector3.new()
- att1.Orientation = r or Vector3.new()
- alp.MaxForce = 999999999
- alp.MaxVelocity = math.huge
- alp.ReactionForceEnabled = false
- alp.Responsiveness = math.huge
- alo.Responsiveness = math.huge
- alp.RigidityEnabled = false
- alo.MaxTorque = 999999999
- part.Massless = true
- end
- function notify(title,text,duration)
- game.StarterGui:SetCore("SendNotification", {
- Title = title;
- Text = text;
- Duration = duration or 5;
- })
- end
- char.Humanoid.Died:Connect(function()
- for i,v in pairs(ct) do
- v:Disconnect()
- end
- end)
- if camhat == nil then -- if youre in Just Grass this will give you the hat for free (https://www.roblox.com/games/5100950559)
- if game.PlaceId == 5100950559 then
- game.Players:Chat("-gh " .. tostring(hatid))
- wait(.5)
- camhat = char:FindFirstChild(hatname)
- else
- return error("missing the camera hat")
- end
- end
- te(ct,game:GetService("RunService").Heartbeat:connect(function()
- if camhat.Parent == nil then
- notify("Warning", "Your camera hat has fallen, please re-execute", 10)
- game.Players:Chat("-re")
- char.Humanoid.Health = 0
- for i,v in pairs(ct) do
- v:Disconnect()
- end
- end
- camhat.Handle.Velocity = Vector3.new(0,30,0)
- end))
- camhat.Handle:BreakJoints()
- camhat.Handle.CanCollide = false
- camhat.Handle.Transparency = camtransparency or 1
- local fakehat = camhat.Handle:Clone()
- fakehat.Anchored = true
- fakehat.Transparency = 1
- fakehat.Parent = char
- local offset = (BigCamera and bigcamoffset) or smallcamoffset
- te(ct,game:GetService("RunService").RenderStepped:Connect(function()
- fakehat.CFrame = camera.CFrame
- fakehat.Orientation = fakehat.Orientation + offset
- end))
- align(camhat.Handle,fakehat)