Like @wastemanty23 and others have said, try to get some algebra and physics classes (and geometry/trig). However, the only thing I disagree on is with self-study - everyone’s different. For myself, I find I learn the most when I’m researching things online, or reading through a book/article. And also, online there are courses on sites like edX from institutions, or other sites like Khan Academy, or great books you can order… it really just depends on your learning preferences. And I feel that you greatly limit yourself by being restricted to classes in numerous ways, though I’m sure @wastemanty23 didn’t mean to not learn elsewhere.

**Online Courses**

For first year algebra-based physics, this course on edX from Rice University I find to be good, or Khan Academy if you’re into it. The nice thing about this edX course is that it requires no more than algebra and some basic trig, which you could learn pretty easily from Khan Academy or elsewhere. And I wouldn’t worry about getting or certificate or good grades in it. In a way doing that takes stress off and allows you to focus on *learning* more.

For math, I haven’t tried any online courses myself besides Khan Academy. I’ve used it in the past, and I don’t personally find it to be the best for explanations, but for many people it works great.

**Books**

For physics, the above is the free online book that’s used in the edX course. It’s nothing special, but it has simple and clear explanations and quite a number of examples. Also half of the book is about the coverage of the edX course (AP Physics 1), and it goes along quite well with it.

For mathematics, I’ve heard a lot of great things about the above, “the art of problem solving” (AoPS) books. They go from Prealgebra up to Calculus in their set of books, and seem to have good feedback from most people.

You can search online for practically anything nowadays. If you wanted to figure out how to script a projectile in Roblox using BodyMovers, then search online for “2D kinematics,” or “how projectiles work in physics,” and perhaps go in that earlier book or course I mentioned, or search around on the devforum! Near immediately I found this devforum topic, this online projectile article, and this other devforum topic.

In the end, I find that trying new things is the key to learning. And also breaking things down that’ve already been made to try to learn from them. Try to reach beyond what you’re comfortable doing; like instead of avoiding little projects that could involve complexity, like making a working drone, research a whole lot, try stuff out with code, and keep fixing!

And also, here’s a quick example. Let’s say you had two parts in the workspace and you wanted to find the direct distance between the two of them in studs. What you could do is this, using .Magnitude:

```
local partA = game.Workspace.partA
local partB = game.Workspace.partB
local distance = (partA.Position - partB.Position).Magnitude
```

However, if we wanted to really learn more in math/physics, then what we can do is “break it down” in order to learn from this. In further research, we can learn that .Magnitude is just a function that represents a the “length of a vector.” Imagining a vector like an arrow (—>), the *direction* is where the arrowhead is facing, while the *magnitude* is how long the arrow (vector) is; the length of the vector, devoid of direction (always positive). Thus, when we subtract the Vector3 positional values of partA and partB, we’re really creating a sort of Vector3 “arrow” pointing from one of the parts to the other. And then .Magnitude is taking the *length* of that 3D invisible “arrow.” Probing a bit deeper, we find this can be redone be manually calculated by ourselves like this:

```
local partA = game.Workspace.partA
local partB = game.Workspace.partB
local distance = math.sqrt((partA.Position.X - partB.Position.X)^2 + (partA.Position.Y - partB.Position.Y)^2 + (partA.Position.Z - partB.Position.Z)^2)
```

We can imagine the above geometrically. In a 2D version of the above, by only taking the difference on each axis, you’d be finding two lines that almost form a triangle, but are missing a side. That side that’s missing is a line going directly from partA to partB! And if you remember from algebra/geometry, the way to find a missing side of a triangle given the two other sides is by using the pythagorean theorem, or a^2 + b^2 = c^2, which can be pretty simply changed (as shown in the code above) to work for Vector3 values and 3D space. And there you go - your own .Magnitude formula!

Just by diving deeper into research, we can find out so much about a single commonly overlooked function, and learn a lot along the way. After this, you could delve more into Vector math, read this devforum guide, or do anything you could imagine.

I hope this was of some help!