How to set minimum zoom distance below 0.5?

I want to make my character small but keep everything else the same so that players who are normal size can interact with me. I’ve adjusted the camera to fit for a small character so that my pov still looks normal.

The issue is I can’t lower the minimum zoom distance below 0.5. I’ve tried changing the Base Camera, Classic Camera, and Zoom controller minimum zoom values to 0.1. But it has no effect.

I tried changing the Z offset to bring it more forward but it just looks weird because my character is off-center. So I’m unable to get a close up view or go in first person when my character is small.

Unfortunately, I don’t think you can. 0.5 zoom distance is first person to a normal character, so there isn’t much of a point in lowering it to Roblox’s POV. I’ve seen some things about changing the player’s FOV, but I’m not sure if it’ll help.

You can change the first-person minimum in the Base Camera playerscript. Since I set it to 0.1 but my camera doesn’t go below 0.5, I am unable to go in first person, only 0.5 distance from my character. FOV does help to an extent but I still want the ability to go in first person.

I think you can try to change ClassicCamera’s minimum distance to be able to achieve that, actually. You can change the local FIRST_PERSON_DISTANCE_MIN = 0.5 to 0.1 instead. ClassicCamera is also a module script, and is in the same place where you found that BaseCamera script. I don’t know if it’ll work, but it might have a chance.

I tried that. I went to Base Camera, Classic Camera, and Zoom controller to no avail. Unless you tested it and it worked

What size do you set your character to? Just want to see if I can work with Offset, since I don’t know if anything else would work.

I scaled it down to 0.1. I haven’t had much luck with a good looking offset though, but you can try

I think I have found a solution! Scale the player down using Model:ScaleTo() instead. It doesn’t size down accessories, but this should fix your original problem, as the camera scales down with the player’s character. Here’s the code I used (make sure it’s a Server Script in ServerScriptService):

local plr = game:GetService("Players").PlayerAdded:Wait()
local char = plr.Character or plr.CharacterAdded:Wait()

char:ScaleTo(0.5)

I’m using ScaleTo(0.1). The camera doesn’t really scale down properly which is why I’ve been tinkering with it including trying to lower the minimum zoom distance

Really? It works for me. You made sure it was on the server side, and in ServerScriptService, right? If yes, then I’m not sure why it wouldn’t work.

The camera adjusts only so much on its own when I scale my character down. Mainly the camera being too high. I’m adjusting the camera through a Local Script. Either way, I don’t see how that fixes the camera zoom issue, because it’ll still be capped at a minimum of 0.5 when I scroll

I tried it using a LocalScript (inside of StarterCharacterScripts), and it works perfectly. The reason it fixes your problem is because the camera scales down with you, meaning the camera would function the exact same as if the player was at a normal size, which I’m pretty sure was what you wanted, as it could go to first person and whatever. Here’s the updated code:

local char = script.Parent

char:ScaleTo(0.1)

Just tested that and my camera is still like half a stud above my character, including a bunch of other wrong things like the character going invisible when your camera isn’t close up yet or the zoom speed being too fast. But I already fixed those things, my issue is just the minimum zoom distance not going below 0.5. Without being able to go below 0.5, I can’t get close up to my character or go in first person.
When I turn small I want the camera to literally be 1:1 to a normal sized person’s camera. Like I wouldn’t even know if I got shrunk, so that’s why I’m trying to replicate it to look like a normal camera.

Ok, I fixed the offset part here:

local char = script.Parent
local hum = char:FindFirstChild("Humanoid")

char:ScaleTo(0.1)
hum.CameraOffset = Vector3.new(0, -1.25, 0)

But would you mind sharing a video? When I playtest it, it looks as normal as can be. Thanks in advance, I also might not respond for a while because I’m kind of buzy.

I’ve fixed the offset, I just want to know how to bypass the 0.5 minimum zoom limit is all. Thanks for trying to help

I’ve done this before - to give some context, I had some spaceships that I drastically scaled down & adjusted the zoom distance to below 0.5 to give the illusion the ships were of larger scale thus allowing me to create a large-scale space game. Similar method.

I cannot 100% remember how I achieved this however I do remember manually editing the StarterPlayer camera script; it took a few attempts to find the right setting but it worked that way.

When I’m home tonight I’ll go through my archives and see if I still have a version of the game saved that utilises this method.

That’d be super helpful, I feel like I’ve tried everything in starterplayer camera scripts

1 Like

Yeah, it was tedious from what I can remember!

I had to change several of the scripts that all seemed to have the same code, but eventually I got there so it is 100% doable.

Hey I looked into it and unfortunately I don’t have the files anymore.
I do however have a past-post with the solution on it.

To summarise basically need to make your own camera system.

I had a feeling it’d come to this, I might do that in the future. Thanks for helping