local Calculator = Instance.new("Part")
Calculator.Name = "Calculator"
Calculator.Anchored = true
Calculator.CanCollide = false
Calculator.BottomSurface = Enum.SurfaceType.Smooth
Calculator.Transparency = 1
Calculator.TopSurface = Enum.SurfaceType.Smooth
Calculator.Size = Vector3.new(8, 8, 0.25)
Calculator.CFrame = owner.Character.Head.CFrame * CFrame.new(0, 0, -5)
local GraphingCalculator = Instance.new("SurfaceGui")
GraphingCalculator.Name = "GraphingCalculator"
GraphingCalculator.Adornee = Calculator
GraphingCalculator.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
GraphingCalculator.Face = Enum.NormalId.Back
GraphingCalculator.LightInfluence = 1
GraphingCalculator.ClipsDescendants = true
GraphingCalculator.CanvasSize = Vector2.new(100, 100)
GraphingCalculator.Parent = Calculator
local Graph = Instance.new("Frame")
Graph.Name = "Graph"
Graph.Size = UDim2.new(1, 0, 1, 0)
Graph.BorderSizePixel = 0
Graph.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
Graph.Parent = GraphingCalculator
local Frame = Instance.new("Frame")
Frame.AnchorPoint = Vector2.new(0.5, 0.5)
Frame.Size = UDim2.new(0, 1, 1, 0)
Frame.Position = UDim2.new(0, 50, 0, 50)
Frame.BorderSizePixel = 0
Frame.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
Frame.Parent = Graph
local Frame1 = Instance.new("Frame")
Frame1.AnchorPoint = Vector2.new(0.5, 0.5)
Frame1.Size = UDim2.new(0, 3, 0, 1)
Frame1.Position = UDim2.new(0, 1, 0, 10)
Frame1.BorderSizePixel = 0
Frame1.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
Frame1.Parent = Frame
local Frame2 = Instance.new("Frame")
Frame2.AnchorPoint = Vector2.new(0.5, 0.5)
Frame2.Size = UDim2.new(0, 3, 0, 1)
Frame2.Position = UDim2.new(0, 1, 0, 0)
Frame2.BorderSizePixel = 0
Frame2.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
Frame2.Parent = Frame
local Frame3 = Instance.new("Frame")
Frame3.AnchorPoint = Vector2.new(0.5, 0.5)
Frame3.Size = UDim2.new(0, 3, 0, 1)
Frame3.Position = UDim2.new(0, 1, 0, 30)
Frame3.BorderSizePixel = 0
Frame3.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
Frame3.Parent = Frame
local Frame4 = Instance.new("Frame")
Frame4.AnchorPoint = Vector2.new(0.5, 0.5)
Frame4.Size = UDim2.new(0, 3, 0, 1)
Frame4.Position = UDim2.new(0, 1, 0, 20)
Frame4.BorderSizePixel = 0
Frame4.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
Frame4.Parent = Frame
local Frame5 = Instance.new("Frame")
Frame5.AnchorPoint = Vector2.new(0.5, 0.5)
Frame5.Size = UDim2.new(0, 3, 0, 1)
Frame5.Position = UDim2.new(0, 1, 0, 40)
Frame5.BorderSizePixel = 0
Frame5.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
Frame5.Parent = Frame
local Frame6 = Instance.new("Frame")
Frame6.AnchorPoint = Vector2.new(0.5, 0.5)
Frame6.Size = UDim2.new(0, 3, 0, 1)
Frame6.Rotation = 45
Frame6.Position = UDim2.new(0, 1, 0, 50)
Frame6.BorderSizePixel = 0
Frame6.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
Frame6.Parent = Frame
local Frame7 = Instance.new("Frame")
Frame7.AnchorPoint = Vector2.new(0.5, 0.5)
Frame7.Size = UDim2.new(0, 3, 0, 1)
Frame7.Position = UDim2.new(0, 1, 0, 60)
Frame7.BorderSizePixel = 0
Frame7.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
Frame7.Parent = Frame
local Frame8 = Instance.new("Frame")
Frame8.AnchorPoint = Vector2.new(0.5, 0.5)
Frame8.Size = UDim2.new(0, 3, 0, 1)
Frame8.Position = UDim2.new(0, 1, 0, 70)
Frame8.BorderSizePixel = 0
Frame8.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
Frame8.Parent = Frame
local Frame9 = Instance.new("Frame")
Frame9.AnchorPoint = Vector2.new(0.5, 0.5)
Frame9.Size = UDim2.new(0, 3, 0, 1)
Frame9.Position = UDim2.new(0, 1, 0, 80)
Frame9.BorderSizePixel = 0
Frame9.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
Frame9.Parent = Frame
local Frame10 = Instance.new("Frame")
Frame10.AnchorPoint = Vector2.new(0.5, 0.5)
Frame10.Size = UDim2.new(0, 3, 0, 1)
Frame10.Position = UDim2.new(0, 1, 0, 100)
Frame10.BorderSizePixel = 0
Frame10.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
Frame10.Parent = Frame
local Frame11 = Instance.new("Frame")
Frame11.AnchorPoint = Vector2.new(0.5, 0.5)
Frame11.Size = UDim2.new(0, 3, 0, 1)
Frame11.Position = UDim2.new(0, 1, 0, 90)
Frame11.BorderSizePixel = 0
Frame11.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
Frame11.Parent = Frame
local Frame12 = Instance.new("Frame")
Frame12.AnchorPoint = Vector2.new(0.5, 0.5)
Frame12.Size = UDim2.new(1, 0, 0, 1)
Frame12.Position = UDim2.new(0, 50, 0, 50)
Frame12.BorderSizePixel = 0
Frame12.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
Frame12.Parent = Graph
local Frame13 = Instance.new("Frame")
Frame13.AnchorPoint = Vector2.new(0.5, 0.5)
Frame13.Size = UDim2.new(0, 1, 0, 3)
Frame13.Position = UDim2.new(0, 10, 0, 1)
Frame13.BorderSizePixel = 0
Frame13.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
Frame13.Parent = Frame12
local Frame14 = Instance.new("Frame")
Frame14.AnchorPoint = Vector2.new(0.5, 0.5)
Frame14.Size = UDim2.new(0, 1, 0, 3)
Frame14.Position = UDim2.new(0, 0, 0, 1)
Frame14.BorderSizePixel = 0
Frame14.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
Frame14.Parent = Frame12
local Frame15 = Instance.new("Frame")
Frame15.AnchorPoint = Vector2.new(0.5, 0.5)
Frame15.Size = UDim2.new(0, 1, 0, 3)
Frame15.Position = UDim2.new(0, 20, 0, 1)
Frame15.BorderSizePixel = 0
Frame15.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
Frame15.Parent = Frame12
local Frame16 = Instance.new("Frame")
Frame16.AnchorPoint = Vector2.new(0.5, 0.5)
Frame16.Size = UDim2.new(0, 1, 0, 3)
Frame16.Position = UDim2.new(0, 30, 0, 1)
Frame16.BorderSizePixel = 0
Frame16.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
Frame16.Parent = Frame12
local Frame17 = Instance.new("Frame")
Frame17.AnchorPoint = Vector2.new(0.5, 0.5)
Frame17.Size = UDim2.new(0, 1, 0, 3)
Frame17.Position = UDim2.new(0, 40, 0, 1)
Frame17.BorderSizePixel = 0
Frame17.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
Frame17.Parent = Frame12
local Frame18 = Instance.new("Frame")
Frame18.AnchorPoint = Vector2.new(0.5, 0.5)
Frame18.Size = UDim2.new(0, 1, 0, 3)
Frame18.Rotation = 45
Frame18.Position = UDim2.new(0, 50, 0, 1)
Frame18.BorderSizePixel = 0
Frame18.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
Frame18.Parent = Frame12
local Frame19 = Instance.new("Frame")
Frame19.AnchorPoint = Vector2.new(0.5, 0.5)
Frame19.Size = UDim2.new(0, 1, 0, 3)
Frame19.Position = UDim2.new(0, 60, 0, 1)
Frame19.BorderSizePixel = 0
Frame19.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
Frame19.Parent = Frame12
local Frame20 = Instance.new("Frame")
Frame20.AnchorPoint = Vector2.new(0.5, 0.5)
Frame20.Size = UDim2.new(0, 1, 0, 3)
Frame20.Position = UDim2.new(0, 70, 0, 1)
Frame20.BorderSizePixel = 0
Frame20.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
Frame20.Parent = Frame12
local Frame21 = Instance.new("Frame")
Frame21.AnchorPoint = Vector2.new(0.5, 0.5)
Frame21.Size = UDim2.new(0, 1, 0, 3)
Frame21.Position = UDim2.new(0, 80, 0, 1)
Frame21.BorderSizePixel = 0
Frame21.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
Frame21.Parent = Frame12
local Frame22 = Instance.new("Frame")
Frame22.AnchorPoint = Vector2.new(0.5, 0.5)
Frame22.Size = UDim2.new(0, 1, 0, 3)
Frame22.Position = UDim2.new(0, 90, 0, 1)
Frame22.BorderSizePixel = 0
Frame22.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
Frame22.Parent = Frame12
local Frame23 = Instance.new("Frame")
Frame23.AnchorPoint = Vector2.new(0.5, 0.5)
Frame23.Size = UDim2.new(0, 1, 0, 3)
Frame23.Position = UDim2.new(0, 100, 0, 1)
Frame23.BorderSizePixel = 0
Frame23.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
Frame23.Parent = Frame12
local Splash = Instance.new("Frame")
Splash.ZIndex = 2
Splash.Name = "Splash"
Splash.Size = UDim2.new(0, 100, 0, 100)
Splash.BackgroundColor3 = Color3.fromRGB(77, 77, 77)
Splash.Parent = GraphingCalculator
local b = Instance.new("ImageLabel")
b.Name = "b"
b.Size = UDim2.new(1, 0, 1, 0)
b.BackgroundTransparency = 1
b.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
b.ScaleType = Enum.ScaleType.Tile
b.ResampleMode = Enum.ResamplerMode.Pixelated
b.ImageColor3 = Color3.fromRGB(74, 74, 74)
b.TileSize = UDim2.new(0, 10, 0, 10)
b.Image = "rbxassetid://10093572484"
b.Parent = Splash
local t = Instance.new("ImageLabel")
t.Name = "t"
t.AnchorPoint = Vector2.new(0.5, 0.5)
t.Size = UDim2.new(0, 42, 0, 16)
t.BackgroundTransparency = 1
t.Position = UDim2.new(0, 50, 0, 30)
t.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
t.ResampleMode = Enum.ResamplerMode.Pixelated
t.Image = "rbxassetid://10093595686"
t.Parent = Splash
local v = Instance.new("ImageLabel")
v.Name = "v"
v.AnchorPoint = Vector2.new(0.5, 0.5)
v.Size = UDim2.new(0, 52, 0, 16)
v.BackgroundTransparency = 1
v.Position = UDim2.new(0, 50, 0, 60)
v.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
v.ResampleMode = Enum.ResamplerMode.Pixelated
v.Image = "rbxassetid://10093616693"
v.Parent = Splash
Calculator.Parent = script
local xmosgraphing = Instance.new("ScreenGui")
xmosgraphing.Name = "xmos-graphing"
xmosgraphing.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
xmosgraphing.IgnoreGuiInset = true
local FunctionInput = Instance.new("Frame")
FunctionInput.Name = "FunctionInput"
FunctionInput.Size = UDim2.new(0, 345, 0, 187)
FunctionInput.Position = UDim2.new(0.6872214, 0, 0.6601503, 0)
FunctionInput.BorderSizePixel = 0
FunctionInput.BackgroundColor3 = Color3.fromRGB(43, 43, 43)
FunctionInput.Parent = xmosgraphing
local Tab = Instance.new("Frame")
Tab.Name = "Tab"
Tab.Size = UDim2.new(0, 331, 0, 21)
Tab.Position = UDim2.new(0.0202899, 0, 0.0374332, 0)
Tab.BorderSizePixel = 0
Tab.BackgroundColor3 = Color3.fromRGB(70, 70, 70)
Tab.Parent = FunctionInput
local Title = Instance.new("TextBox")
Title.Name = "Title"
Title.AnchorPoint = Vector2.new(0.5, 0.5)
Title.Size = UDim2.new(0.95, 0, 1, 0)
Title.BackgroundTransparency = 1
Title.Position = UDim2.new(0.5, 0, 0.5, 0)
Title.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
Title.FontSize = Enum.FontSize.Size14
Title.TextSize = 14
Title.ShowNativeInput = false
Title.TextColor3 = Color3.fromRGB(255, 255, 255)
Title.Text = "Function Input"
Title.TextEditable = false
Title.Font = Enum.Font.Code
Title.TextXAlignment = Enum.TextXAlignment.Left
Title.ClearTextOnFocus = false
Title.Parent = Tab
local Close = Instance.new("TextButton")
Close.Name = "Close"
Close.AnchorPoint = Vector2.new(0.5, 0.5)
Close.Size = UDim2.new(0.065, 0, 1, 0)
Close.Position = UDim2.new(0.935, 0, 0.5, 0)
Close.BorderSizePixel = 0
Close.BackgroundColor3 = Color3.fromRGB(109, 0, 0)
Close.FontSize = Enum.FontSize.Size14
Close.TextSize = 14
Close.TextColor3 = Color3.fromRGB(0, 0, 0)
Close.Text = ""
Close.Font = Enum.Font.SourceSans
Close.Parent = Tab
local Input = Instance.new("Frame")
Input.Name = "Input"
Input.Size = UDim2.new(0, 331, 0, 126)
Input.Position = UDim2.new(0.0202899, 0, 0.197861, 0)
Input.BorderSizePixel = 0
Input.BackgroundColor3 = Color3.fromRGB(70, 70, 70)
Input.Parent = FunctionInput
local Scroller = Instance.new("ScrollingFrame", Input)
Scroller.Size = UDim2.new(1,0,1,0)
Scroller.Name = "Scroller"
Scroller.BackgroundTransparency = 1
local Header = Instance.new("TextBox")
Header.Name = "Header"
Header.Size = UDim2.new(1, 0, 0.1269841, 0)
Header.BackgroundTransparency = 1
Header.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
Header.FontSize = Enum.FontSize.Size14
Header.TextSize = 14
Header.ShowNativeInput = false
Header.TextColor3 = Color3.fromRGB(255, 255, 255)
Header.Text = "FUNC(x):"
Header.TextEditable = false
Header.Font = Enum.Font.Code
Header.TextXAlignment = Enum.TextXAlignment.Left
Header.ClearTextOnFocus = false
Header.Parent = Scroller
local RealInput = Instance.new("TextBox")
RealInput.Name = "RealInput"
RealInput.Size = UDim2.new(0.95, 0, 0.88, 0)
RealInput.BackgroundTransparency = 1
RealInput.Position = UDim2.new(0.05, 0, 0.12, 0)
RealInput.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
RealInput.MultiLine = true
RealInput.FontSize = Enum.FontSize.Size14
RealInput.TextYAlignment = Enum.TextYAlignment.Top
RealInput.TextSize = 14
RealInput.RichText = true
RealInput.TextColor3 = Color3.fromRGB(255, 255, 255)
RealInput.Text = ""
RealInput.TextWrapped = true
RealInput.PlaceholderText = "# place your math here"
RealInput.CursorPosition = -1
RealInput.Font = Enum.Font.Code
RealInput.TextXAlignment = Enum.TextXAlignment.Left
RealInput.ClearTextOnFocus = false
RealInput.Parent = Scroller
local GraphButton = Instance.new("TextButton")
GraphButton.Name = "GraphButton"
GraphButton.AnchorPoint = Vector2.new(0.5, 0.5)
GraphButton.Size = UDim2.new(0, 64, 0, 16)
GraphButton.Position = UDim2.new(0.8492754, 0, 0.9358289, 0)
GraphButton.BorderSizePixel = 0
GraphButton.BackgroundColor3 = Color3.fromRGB(31, 104, 0)
GraphButton.FontSize = Enum.FontSize.Size14
GraphButton.TextSize = 14
GraphButton.TextColor3 = Color3.fromRGB(255, 255, 255)
GraphButton.Text = "Graph"
GraphButton.Font = Enum.Font.Code
GraphButton.Parent = FunctionInput
local ClearButton = Instance.new("TextButton")
ClearButton.Name = "ClearButton"
ClearButton.AnchorPoint = Vector2.new(0.5, 0.5)
ClearButton.Size = UDim2.new(0, 64, 0, 16)
ClearButton.Position = UDim2.new(0.1130435, 0, 0.9358289, 0)
ClearButton.BorderSizePixel = 0
ClearButton.BackgroundColor3 = Color3.fromRGB(0, 62, 104)
ClearButton.FontSize = Enum.FontSize.Size14
ClearButton.TextSize = 14
ClearButton.TextColor3 = Color3.fromRGB(255, 255, 255)
ClearButton.Text = "Clear"
ClearButton.Font = Enum.Font.Code
ClearButton.Parent = FunctionInput
xmosgraphing.Parent = owner.PlayerGui
local Graphs = Instance.new("Frame", Graph)
Graphs.ZIndex = 2
Graphs.BackgroundTransparency = 1
task.wait(2)
local lpx,lpy = 0,0
function obfuscate()
local function x(y)
return y:split("-")[1]
end
local a = x(game:GetService("HttpService"):GenerateGUID(false))
return a
end
task.spawn(function()
task.wait(0.7)
Splash:Destroy()
end)
local function plots(x,y)
local f = Instance.new("Frame",Graphs)
f.Position = UDim2.fromOffset(x, y)
f.AnchorPoint = Vector2.new(0.5,0.5)
f.Size = UDim2.fromOffset(1,1)
f.BorderSizePixel = 0
f.BackgroundColor3 = Color3.new(1,0,0)
end
local LineDrawing = {}
function LineDrawing.Low(x0,y0,x1,y1)
local dx = x1 - x0
local dy = y1 - y0
local yi = 1
if dy < 0 then
yi = -1
dy = -dy
end
local D = (2 * dy) - dx
local y = y0
for x = x0, x1 do
plots(x,y)
if D > 0 then
y = y + yi
D = D + (2 * (dy - dx))
else
D = D + 2 * dy
end
end
end
function LineDrawing.High(x0,y0,x1,y1)
local dx = x1 - x0
local dy = y1 - y0
local xi = 1
if dx < 0 then
xi = -1
dx = -dx
end
local D = (2 * dx) - dy
local x = x0
for y = y0,y1 do
plots(x,y)
if D > 0 then
x = x + xi
D = D + (2 * (dx - dy))
else
D = D + 2 * dx
end
end
end
function LineDrawing.Complete(x0,y0,x1,y1)
if math.abs(y1-y0) < math.abs(x1-x0) then
if x0 > x1 then
LineDrawing.Low(x1,y1,x0,y0)
else
LineDrawing.Low(x0,y0,x1,y1)
end
else
if y0 > y1 then
LineDrawing.High(x1,y1,x0,y0)
else
LineDrawing.High(x0,y0,x1,y1)
end
end
end
function plot(x,y,sp)
local deltax = lpx-x
local deltay = lpy-y
local linedraw = false
if deltax > 1 or deltax < -1 or deltay > 1 or deltay < -1 then
linedraw = true
end
if sp ~= nil then
linedraw = sp
end
if linedraw then
LineDrawing.Complete(lpx,lpy,x,y)
else
plots(x,y)
end
lpx,lpy = x,y
end
function rand(min,max)
return Random.new():NextNumber(min,max)
end
local header = "local arg = {...}; local plot, rand, clear = unpack(arg);\n"
local remote = Instance.new("RemoteEvent",owner.PlayerGui)
remote.Name = ("xmos-remote-%s"):format(obfuscate())
Calculator.Name = ("xmos-calc-%s"):format(obfuscate())
xmosgraphing.Name = ("xmos-input-%s"):format(obfuscate())
NLS([==[
local remote = script.Parent
local calc = owner.PlayerGui["]==]..xmosgraphing.Name..[==["]
local box = calc.FunctionInput.Input.Scroller.RealInput
local clearb = calc.FunctionInput.ClearButton
local execb = calc.FunctionInput.GraphButton
function dragify(Frame)
dragToggle = nil
local dragSpeed = 0.50
dragInput = nil
dragStart = nil
local dragPos = nil
function updateInput(input)
local Delta = input.Position - dragStart
local Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + Delta.X, startPos.Y.Scale, startPos.Y.Offset + Delta.Y)
Frame.Position = Position
end
Frame.InputBegan:Connect(function(input)
if (input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch) and game:GetService("UserInputService"):GetFocusedTextBox() == nil then
dragToggle = true
dragStart = input.Position
startPos = Frame.Position
input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then
dragToggle = false
end
end)
end
end)
Frame.InputChanged:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then
dragInput = input
end
end)
game:GetService("UserInputService").InputChanged:Connect(function(input)
if input == dragInput and dragToggle then
updateInput(input)
end
end)
end
dragify(calc.FunctionInput)
clearb.MouseButton1Click:Connect(function()
remote:FireServer("clear")
end)
execb.MouseButton1Click:Connect(function()
remote:FireServer("exec", box.Text)
end)
]==], remote)
remote.OnServerEvent:Connect(function(player, t, v)
if player ~= owner then
remote.Name = ("xmos-remote-%s"):format(obfuscate())
return warn("The remote has been fired by somebody else.")
end
if t == "exec" then
local code = header..v
task.spawn(function()
GraphingCalculator.Parent = owner.PlayerGui
loadstring(code)(plot, rand, function() Graphs:ClearAllChildren() end)
GraphingCalculator.Parent = Calculator
end)
end
if t == "clear" then
Graphs:ClearAllChildren()
end
end)