2.0.6 • Published 2 years ago

@rbxts/scale-model v2.0.6

Weekly downloads
-
License
ISC
Repository
github
Last release
2 years ago

@rbxts/scale-model

Scale/resize Models and Parts and all Descendants

Version 2.0 adds non-uniform scaling by number, Vector2, or Vector3

Currently scaling the following types and properties:

  • Model (Size, Position)
  • BasePart (Size, Position)
  • Attachment (Position) (and thus connected Constraints, e.g. Welds and Joints)
  • SpecialMesh (Scale)
  • Fire (Size)
  • Texture (U/V)
  • ParticleEmitter (Size: NumberSequence)
  • Explosion (Position, BlastPressure, BlastRadius)
  • PointLight (Range)
  • Vector3 (Scale, Scale about Point)
  • Tool (All Descendants, using Handle as reference)
  • Joint (Thanks to @RRainmaker)
  • Instances (generic catch-all for e.g. a Folder)

Usage

  1. Install npm package
npm i @rbxts/scale-model
  1. Import scaleModel, scalePart, scaleExplosion, scaleTool, or scaleInstances
import { scaleModel, scalePart, scaleExplosion, scaleTool, scaleInstances } from '@rbxts/scale-model';
  1. Pass a Model, Part, Explosion, Tool, or array of Instances with a scale factor. Scale factor > 1 is bigger, < 1 is smaller
scaleModel(myModel, 1.5);   // All descendants of myModel to 150% size

scalePart(myPart, new Vector3(0.5, 2, 0.5);     // myPart and all descendants to 50% size on XZ and 200% size on Y (tall + skinny)

scaleExplosion(myExplosion, 10);     // myExplosion to 1000% size

scaleTool(myTool, 0.8);     // myTool to 80% size

scaleInstances(myFolder, 0.5, new Vector3(0,0,0));     // all instances in myFolder to 50% size

We need this special api for scaleExplosion since we need to scale it before it is parented.

Custom Scaling Center

You can optionally provide a custom center point in the 3rd parameter, instead of using the Model's PrimaryPart's Position, or the Part's Position.

The scaling of a Model can fail if attempted on a Model that doesn't have a PrimaryPart defined, and no custom center is provided. In that case, a message will be printed in the output.

The scaling of a Tool can fail if attempted on a Tool that doesn't have a Handle defined, and no custom center is provided. In that case, a message will be printed in the output.

Did I miss your favorite Descendant?

Pull Requests are welcome if there's something I missed. Or, open an Issue.

Command-line usage

The compiled modulescript is available in the Roblox Library with asset id 8238368335 Open the Command Bar in Roblox studio and require the modulescript to use it

require(8238368335).scaleModel(game.Workspace.TestModel, 4, Enum.NormalId.Bottom)

Roblox-TS

Part of the ever-growing Roblox-TS community.

Roblox

Friend me on Roblox, my Avatar is FirstVertex.

:v:

2.0.6

2 years ago

2.0.3

2 years ago

2.0.2

2 years ago

2.0.5

2 years ago

2.0.4

2 years ago

2.0.1

2 years ago

1.0.24

2 years ago

2.0.0

2 years ago

1.0.22

3 years ago

1.0.23

3 years ago

1.0.19

3 years ago

1.0.21

3 years ago

1.0.20

3 years ago

1.0.18

3 years ago

1.0.17

3 years ago

1.0.16

3 years ago

1.0.15

3 years ago

1.0.14

3 years ago

1.0.13

3 years ago

1.0.12

3 years ago

1.0.11

3 years ago

1.0.10

3 years ago

1.0.9

3 years ago

1.0.8

3 years ago

1.0.7

3 years ago

1.0.6

3 years ago

1.0.5

3 years ago

1.0.4

3 years ago

1.0.2

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago