1+ local oldGravity = workspace.Gravity
2+ local velocityTarget = -1
3+ local targetGravity = 20
4+
5+ local loop
6+
7+ local Plugin = {
8+ ["PluginName"] = "Feather Falling",
9+ ["PluginDescription"] = "Makes you fall more slowly",
10+ ["Commands"] = {
11+ ["featherfall"] = {
12+ ["ListName"] = "featherfall / fef",
13+ ["Description"] = "Enables feather falling",
14+ ["Aliases"] = {"fef"},
15+ ["Function"] = function(args, speaker: Player)
16+ if not speaker.Character then return end
17+
18+ local root: Part = getRoot(speaker.Character)
19+ if not root then return end
20+
21+ loop = RunService.Stepped:Connect(function()
22+ if not root then
23+ loop:Disconnect()
24+ return
25+ end
26+
27+ if root.AssemblyLinearVelocity.Y < velocityTarget then
28+ workspace.Gravity = targetGravity
29+ else
30+ workspace.Gravity = oldGravity
31+ end
32+ end)
33+ end
34+ },
35+ ["unfeatherfall"] = {
36+ ["ListName"] = "unfeatherfall / unfef",
37+ ["Description"] = "Disables your feather falling",
38+ ["Aliases"] = {"unfef"},
39+ ["Function"] = function(args, speaker)
40+ if loop then loop:Disconnect() end
41+
42+ workspace.Gravity = oldGravity
43+ end
44+ },
45+ ["featherfallgravity"] = {
46+ ["ListName"] = "featherfallgravity / fefg [num]",
47+ ["Description"] = "Inputs your target gravity",
48+ ["Aliases"] = {"fefg"},
49+ ["Function"] = function(args, speaker)
50+ targetGravity = tonumber(args[1]) or targetGravity
51+ end
52+ },
53+ ["featherfallfallingpoint"] = {
54+ ["ListName"] = "featherfallfallingpoint / feffp [num]",
55+ ["Description"] = "Inputs your target falling point",
56+ ["Aliases"] = {"feffp"},
57+ ["Function"] = function(args, speaker)
58+ velocityTarget = tonumber(args[1]) or velocityTarget
59+ end
60+ }
61+ }
62+ }
63+
64+ return Plugin
0 commit comments