Hello! So some backstory (if your not interested just skip past), I got hired to make this a while back, but when I finished, the commissioner blocked me. Honestly, it was a listen, so I’m not mad. But here it is! I’ve had a lot of people DMing me asking to buy this, so I thought I might as well open source this and steal some business from fellow scripters who are making money selling their ODM’s to owners!
Anyways, AoT Open Source - Roblox here is the game link, it should be open for copying! The system I use is Line Forces, and it should be relatively safe in terms of exploiting, as it uses server checking… Performance works fine in that game, but no the script was not written very well, and is by no means my best work. So yes, there are optimizations to be made! No need for credit, it was really just a joy to make, and I hope this comes to use in someones game! Enjoy!
P.S: I may have made a mistake in the formatting for the category! If so please just inform me!
Features
Double ODM uses a spreading raycast, that moves away from the center of the screen, until a limit is reached, or both raycasts return positive! Pretty cool if I may say so myself!
There are some camera works to simulate movement
Space has some strange functions in stopping velocity, to make it easier to hit targets!
Thank you! Although no, I haven’t made any updates after open-sourcing it! If there’s a feature you’d like feel free to suggest it though! Yes, the rope shooters grab on to the building, perhaps you’re not holding the key for long enough?
Very great resource!! Will definitely be helpful for me as I’m a big fan of the show and want to recreate the odm gear but have no idea where to start with this resource I’ll know what stuff and good methods to use thank you so much
This code is very insecure and shouldn’t be used, for example the person who made the code did these mistakes:
Raycasting on client
Bodygyros on client
Use’s repetitive code which is just cloned to another spot with a 1/2 things changed
Using Pcall in places that shouldn’t use pcall.
Binding to renderstep each time you press a button and NOT disconecting the event.
If you know how to code just the tiniest bit you can exploit this resource extreamly easily, so any game who uses this will 100% get exploiters no matter what.
The code is so bad made and needs an entire rework if you want to change some parts of it.
He parented every script and every object to StarterCharacterScripts, which is INSANELY bad.
Not using task.wait()
Using the deprecated mouse input.
Useless scripts in the experience that have absolutely nothing to do with the actual resource.
Has HD Admin in workspace for absolutely no reason in the slightest.
You can even exploit the system by spam jumping, in doing so you move exponentially faster.
There are more reasons but I won’t include them here.
i was literally able to design an exploit to auto farm wins
local BodyGyro = Instance.new("BodyGyro")
local AlignPosition = Instance.new("AlignPosition")
local Attachment = Instance.new("Attachment")
local Attachment2 = Instance.new("Attachment")
local AtpName = "Atp"..math.random(99,99999999)
local Atp2Name = "Atp2"..math.random(99,99999999)
local ApName = "Ap"..math.random(99,99999999)
local BgName = "Bg"..math.random(99,99999999)
Attachment.Name = AtpName
Attachment2.Name = Atp2Name
AlignPosition.Name = ApName
BodyGyro.Name = BgName
repeat task.wait() until game.Players.LocalPlayer.Character:FindFirstChild("HumanoidRootPart")
while task.wait() do
local Players = game:GetService("Players")
local Player = Players.LocalPlayer
local Character = Player.Character or Player.CharacterAdded:Wait()
Character:WaitForChild("HumanoidRootPart")
--
if not Character.HumanoidRootPart:FindFirstChild(BgName) then
BgName = "Bg"..math.random(99,99999999)
BodyGyro = BodyGyro:Clone()
BodyGyro.Parent = Character.HumanoidRootPart
BodyGyro.Name = BgName
if not Character:FindFirstChild(BgName) then
BodyGyro = Instance.new("BodyGyro")
BodyGyro.Name = BgName
BodyGyro.Parent = Character.HumanoidRootPart
end
end
if not Character.HumanoidRootPart:FindFirstChild(ApName) then
ApName = "Ap"..math.random(99,99999999)
AlignPosition = AlignPosition:Clone()
AlignPosition.Name = ApName
AlignPosition.Parent = Character.HumanoidRootPart
if not Character.HumanoidRootPart:FindFirstChild(ApName) then
AlignPosition = Instance.new("AlignPosition")
AlignPosition.Name = ApName
AlignPosition.Parent = Character.HumanoidRootPart
end
end
if not Character.HumanoidRootPart:FindFirstChild(AtpName) then
AtpName = "Atp"..math.random(99,99999999)
Attachment.Name = AtpName
Attachment = Attachment:Clone()
if not Character.HumanoidRootPart:FindFirstChild(AtpName) then
Attachment = Instance.new("Attachment")
Attachment.Name = AtpName
Attachment.Parent = Character.HumanoidRootPart
end
end
if not Character.HumanoidRootPart:FindFirstChild(Atp2Name) then
Atp2Name = "Atp2"..math.random(99,99999999)
Attachment2 = Attachment:Clone()
Attachment2.Name = Atp2Name
Attachment2.Parent = workspace.Win
if not Character.HumanoidRootPart:FindFirstChild(Atp2Name) then
Atp2Name = "Atp2"..math.random(99,99999999)
Attachment2 = Instance.new("Attachment")
Attachment2.Name = Atp2Name
Attachment2.Parent = workspace.Win
end
end
BodyGyro.CFrame = CFrame.lookAt(Character.HumanoidRootPart.Position, workspace.Win.Position)
BodyGyro.MaxTorque = Vector3.new(1e+3,1e+3,1e+3)
BodyGyro.P = 1e+3
AlignPosition.Attachment0 = Attachment
AlignPosition.Attachment1 = Attachment2
AlignPosition.Position = workspace.Win.Position
AlignPosition.MaxForce = 99999
task.wait()
Character:MoveTo(Character.HumanoidRootPart.Position+Vector3.new(0,-math.random(1,4)),0)
Character.ODM.Script.ShootRemote:FireServer(workspace.Win.Position, Character.ODM.E, 1e+3, "Left", workspace.Win)
end
I wasn’t speaking about it being open source or anything, I was talking about why you shouldn’t use it, hell you shouldn’t even learn it, since it invokes VERY bad practices.
A lot of your initial critiques are not relevant at all (ex: not using task.wait, unnecessary pcalls, HD admin is in the experience, repetitive code, deprecated mouse input, miscellaneous script clutter, etc… has zero relevance to the claim that the code is insecure and shouldn’t be used).
Furthermore, these (at least the one’s that I’ve just listed) are not “VERY bad practices”. Can we agree that using task.wait over wait is better - sure, no question. But the claims you’re making are exaggerated at best - seriously, the level of emphasis and drama makes it seem like this code is going to explode your computer.
For anyone trying to make a system similar to this, it helps to have a reference, even if it’s just to initially conceptualize the subject by looking at how another developer approached it. Resources don’t need to be perfect to be in this section. If you don’t like it, you don’t have to use it.
That being said, there’s always space for respectful critique and comments, but these criticisms seem pretty far past that. Everyone here is trying to learn and improve; the best are trying to help others do the same, too. Bluntly bashing someone else’s creations (and creating huge sweeping claims with a laundry list of points, many of which don’t relate to the claims themselves) only discourages others from trying new things themselves and making the harder choice to put their creations out there for others to benefit from.
You picked the literal weakest points I said, I mean come on why even defend the post telling you to “learn from it” when all it has are bad practices and some that have a 100% to crash/ruin your entire game if you use them. (cough renderstepped for each button press, very easily being able to exploit, raycasting/bodygyros on client for security reasons.)
literally the only reason im here is to use the physics system as a reference. Your claims are overdramaticized as @https_KingPie mentioned. Any capable developer can spot the errors in the code and make the needed adjustments!
Your message doesn’t make any sense, you mention any capable developer, but this is used for developers to learn HOW to code, so no; people who use this open-source project can not spot the errors and make adjustments.
Yes. I have now learned HOW to code the physics for an ODM Gear! Now since i am a capable developer, i shall build my own system from scratch, using bits and pieces of code from this open source project! Like im supposed to!