Unlock scaling of all BaseParts under 0.2

There are various reasons to scale parts under 0.2 on an axis (needing to scale down a model that already has a part that’s 0.2 on one axis, get SurfaceGuis to line up on opposite faces without having an awkward invisible seam in between, creating tiny level clutter/decoration that would otherwise require meshes, etc). If I understand correctly, sizes are locked to a minimum of 0.2 because anything smaller than that would result in physics issues. I suggest the following:

  • Part sizes are rounded for physics so that any sizes under 0.2 are treated as 0.2 for physics if the part has CanCollide enabled (0.2 is extremely small for physics purposes, so no one would even be able to notice the difference)
  • If a part has a size < 0.2 it has no physics if CanCollide is false as per usual

This will remove the restriction on visuals while still allowing physics to function just fine.

18 Likes
  • This is a great idea
  • This isn’t a great idea

0 voters

I would rather have it that all parts under 0.2 studs get treated as cancollide false. Fewer physics calculations, no physics edge cases where the collision box should be smaller like for bullet casings, simply immaterial.

3 Likes

Basically you’re wanting to prevent awkward behavior from happening, right? I’d say having a CanCollide=true part not work with collisions is awkward behavior in and of itself. For one, you’re telling the part to do one thing but it’s ignoring that and doing something completely different, and what if I have a 50x0.1x50 part? Should I fall through that when I walk on it because it has a size < 0.2? That would end up being reported as a bug regularly. If you don’t want collisions on parts < 0.2 in size, you can manually disable CanCollide.

2 Likes

Here’s my opinion (from another thread):

1 Like

Same thing I’m suggesting, to clear up any confusion

The only reason I dont like this is because it’ll be annoying when building when i accidently shrink something too far.

Studio tools won’t be able to resize below 0.2 because of grid size

I can use the same argument against your point.

You’re telling the part to have a 0.1^3 hitbox–instead, it’s ignoring you and giving you a 0.2^3 box without communicating that fact. There’s nothing to explicitly tell you that you have anything but a 0.1^3 hitbox. It also messes with forward compatibility–any potential reduction of the minimum size in the future will be impossible because doing so would break assemblies which depend on that limit.

By graying out the CanCollide field and forcing it off, a smaller minimum hitbox could be introduced in the future without backward compatibility issues. It would also communicate the actual behavior to the user.

There’s no perfect solution to this; you’re defying user expectations either way. Forcing CanCollide off is just the lesser of two evils.

1 Like

You’re making the assumption that < 0.2 sized parts are < 0.2^3. If I have a 50x0.1x50 part, I should be able to walk on top of it, and if that’s not the case we’re going to see bug reports for “Why isn’t my 50x0.1x50 part letting me walk on it?”

What would “break” would be if you had a part that’s < 0.2 on one axis over a hole that’s < 0.2 but > the small size of the first part, and the broken behavior would be that it would now fall through the small hole that it didn’t fall through before. Do you know how common 0.2-size holes are on ROBLOX? They’re near-nonexistent , if not completely nonexistent. The chances of of a part conveniently being small enough to fit through and actually placed on one of those already rare holes is even less possible. And to top even that off, it also has to be unanchored. Even more, what are the chances of someone putting a part that looks like it will fall through a hole over a hole without expecting it to fall through? You’re seriously over-embellishing how decreasing the minimum size would “break” small parts.

You’re very wrong. Force-disabling CanCollide on a part that has a single axis < 0.2 severely limits your options. Removing only the 0.2 limit on visual scale while keeping the 0.2 limit for physics introduces no direct issues and no significant / important issues if the physics limit ever needs to be lowered.

The engine doesn’t support physics for those parts, so it shouldn’t try to do an incorrect, half-assed, forward-incompatible job at it. Your bug report just gets changed to “Why am I hovering 0.05 studs above my baseplate?”
And as I explained, there would be no explicit communication of that fact to the user if the hitbox is clamped. That’s bad UX.

What?

  • I have a machine with parts smaller than 0.2
  • Minimum size changes
  • Size of the parts changes
  • Machine breaks

Because updates changing the size of parts in my game is totally cool and acceptable.

I just explained why that’s not true. I feel like you wrote that argument without reading mine in full.

You just described CSG physics. Better slightly incorrect and consistent than outright disabling collisions, making parts the odd one out. Here I am standing on a Y scale = 0 union with my legs clipping through the bottom:

The behavior requested in the OP is the existing behavior of ROBLOX extended to parts.

Highly unlikely considering how unnoticeable that is, and given that similar issues have never been reported as bugs before (e.g. part edges having wedge-like edge collisions and the magic 0.2x0.2x0.2 floating thing)

Example of such a machine please. Every moving machine I’ve come across has been connected together by joints (independent of size) – the only machine I can picture having free-moving objects that aren’t attached to anything by some sort of joint is a Rube Goldberg Machine.

If you can come up with three non-niche and specific examples of how physics being simulated at 0.2 and then changing to 0.1 would break something, I’ll start believing a minimum size change would actually be noticeable.

And I explained why what you said wasn’t applicable

I’m finding myself hard-pressed to believe that after quoting virtually every item you brought up in your first post.

I’ve never had any need for this unless meshes inside parts decrease performance somehow. But sure it’s useful, I just don’t have a deep need for it because of easy alternatives.

Unions don’t need secondary objects to freely scale their size – I don’t see why parts should need that.

Sure. Surface joints would break because the part faces would contract.

More examples are unnecessary but I’d be happy to come up with a few.

The studio tools do not support grid sizes < 0.2. It would be impossible to align and create surface joints between parts smaller than that without manually creating them through scripts, in which case Welds/Motors would be a better option than surface joints. Even if you did manage to align two 0.1^3 parts for instance, they wouldn’t have surface joints created between them in the first place because they would be clipping together as far as ROBLOX was concerned.

I don’t understand the relevance of the grid size.

To be clear, here’s what happens when a 0.2-stud part attached to the baseplate is resized to 0.1
https://i.gyazo.com/5bb6ff1a9de11b50ce0ffc22298cdb1f.gif
The surface loses contact and the joint breaks.

Unless you’re implying that surface joints should be formed somewhere other than the collision box? gross

A little correction to your recording:

For something to be broken by changing the minimum size it would have to look like this:


I don’t see how any sane person could build that and expect it to be connected together.

Okay, so now we can’t use surface joints at all and the dragger tool doesn’t drag parts flush to their surfaces?
That is problematic.

No it’s really not. ROBLOX Studio already doesn’t work with anything < 0.2. If you want to drag unions scaled less than that with precision so their surfaces are flush you already need to use a building plugin like CmdUtl or SBS. But magically it’s a problem now because you’re trying to invent problems when there’s not any.

As if not being able to use surface joints on < 0.2 parts is an issue. Surface joints are rarely used to begin with.

I don’t know what is with your crusade against this, but the scale unlocking is certainly not for beginner building, the only place surface joints are used. This whole “breaking” thing is something engineered by you that relies on a combination of:

  • ROBLOX changing the minimum physics size
  • Beginner builders branching out and using a power tool for building to create and align parts < 0.2
  • Those same beginner builders trying to make something unanchored (most things in ROBLOX are static) with those < 0.2 parts
  • They expect their creation to magically stick together

which ends up being extremely unlikely.