null
nil
-
true
0
0
-0.699999988
-0
0
1
1
-0
0
0
1
0
Wrench
http://www.roblox.com/asset/?id=16885384
true
-
false
SwordScript
-------- OMG HAX
r = game:service("RunService")
local damage = 0
local slash_damage = 0
sword = script.Parent.Handle
Tool = script.Parent
function attack()
local anim = Instance.new("StringValue")
anim.Name = "toolanim"
anim.Value = "Slash"
anim.Parent = Tool
end
function swordUp()
Tool.GripForward = Vector3.new(-1,0,0)
Tool.GripRight = Vector3.new(0,1,0)
Tool.GripUp = Vector3.new(0,0,1)
end
function swordOut()
Tool.GripForward = Vector3.new(0,0,1)
Tool.GripRight = Vector3.new(0,-1,0)
Tool.GripUp = Vector3.new(-1,0,0)
end
Tool.Enabled = true
function onActivated()
if not Tool.Enabled then
return
end
Tool.Enabled = false
local character = Tool.Parent;
local humanoid = character.Humanoid
if humanoid == nil then
print("Humanoid not found")
return
end
attack()
wait(1)
Tool.Enabled = true
end
function onEquipped()
end
script.Parent.Activated:connect(onActivated)
script.Parent.Equipped:connect(onEquipped)
true
-
false
-0.5
0.5
0
0
-0.5
0.5
0
0
199
-11
2
-11.5
0
0
-1
0
1
-0
1
0
-0
true
false
0.5
2
0.300000012
-0.5
0.5
0
0
-0.5
0.5
0
0
true
256
Handle
0
-0.5
0.5
0
0
0
0
0
-0.5
0.5
0
0
0
0
0
0
true
1
1
0.800000012
2
-
2
2
http://www.roblox.com/asset/?id=16884681
5
Mesh
0
0
0
0.600000024
0.600000024
0.600000024
http://www.roblox.com/asset/?id=16884673
1
1
1
true
-
false
Configuration Local
local Tool = script.Parent;
enabled = true
local selectionLasso
local selectionBox
local guiMain
local selectionGui
local hintGui
local valueConnections = {}
local objectValueSelect = {}
local colorPaletteSelectMode = false
--Constants
local width = UDim.new(0.25, 0)
local height = 20
local transparency = 0.5
local buttonColor = BrickColor.new("New Yeller")
local frameColor = BrickColor.new("Pastel yellow")
function sharedProcess(value, parentFrame)
local subFrame = Instance.new("Frame")
subFrame.Name = value.Name
subFrame.Size = UDim2.new(1.0, 0, 0, height)
subFrame.BackgroundTransparency = 1.0
subFrame.BorderSizePixel = 0
local label = Instance.new("TextLabel")
label.Position = UDim2.new(0.0, 0, 0.0, 0)
label.Size = UDim2.new(0.5, 0, 1.0, 0)
label.TextColor = BrickColor.Black()
label.Text = value.Name
label.Parent = subFrame
label.BackgroundTransparency = 1.0
label.BorderSizePixel = 0
return subFrame
end
function createTextBox(size, text)
local textBox = Instance.new("TextBox")
textBox.Position = UDim2.new(0.5, 1, 0.0, 1)
textBox.Size = size
textBox.BackgroundColor = BrickColor.White()
textBox.TextColor = BrickColor.Black()
textBox.Text = text
return textBox;
end
function setCheckBoxValue(checkBox, value)
if value then
checkBox.Text = "X"
else
checkBox.Text = ""
end
end
function createCheckBox(value)
local checkBox = Instance.new("TextButton")
checkBox.Position = UDim2.new(0.75, -(height-4)/2, 0.0, 2)
checkBox.Size = UDim2.new(0.0, height-4, 0.0, height-4)
checkBox.BackgroundColor = BrickColor.White()
checkBox.TextColor = BrickColor.Black()
setCheckBoxValue(checkBox, value)
return checkBox
end
function processBoolValue(value, guiFrame)
local subFrame = sharedProcess(value, guiFrame)
local checkBox = createCheckBox(value.Value)
--Tie the two values together... we'll need to break these connections later
checkBox.MouseButton1Down:connect(function() value.Value = not(value.Value) end)
valueConnections[#valueConnections+1] = value.Changed:connect(function(newValue) print(newValue) setCheckBoxValue(checkBox, newValue) end)
checkBox.Parent = subFrame
return subFrame
end
function processIntValue(value, guiFrame)
local subFrame = sharedProcess(value, guiFrame)
local textBox = createTextBox(UDim2.new(0.5,-2, 1.0, -2), value.Value, function(textBox) value.Value = textBox.Text end)
--Tie the two values together... we'll need to break these connections later
textBox.Changed:connect(function(prop) if prop == 'Text' then pcall(function() value.Value = textBox.Text end) textBox.Text = value.Value end end)
valueConnections[#valueConnections+1] = value.Changed:connect(function(newValue) textBox.Text = newValue end)
textBox.Parent = subFrame
return subFrame;
end
function processNumberValue(value, guiFrame)
return processIntValue(value, guiFrame)
end
function processStringValue(value, guiFrame)
return processIntValue(value, guiFrame)
end
function onMouseLeave(hoverSelection, selectedButtonTable, oldButton)
if oldButton[0] then
local notSelected = true;
local selectionText = "";
for key, value in pairs(selectedButtonTable) do
if oldButton[0] == value then
notSelected = false
else
selectionText = value.BackgroundColor.Name;
end
end
if notSelected then
hoverSelection.Text = selectionText;
oldButton[0].Parent.BackgroundColor = BrickColor.Black();
end
end
oldButton[0] = nil
end
function onMouseEnter(hoverSelection, guiButton, selectedButtonTable, oldButton)
onMouseLeave(hoverSelection, selectedButtonTable, oldButton)
hoverSelection.Text = guiButton.BackgroundColor.Name
if guiButton ~= selectedButton then
guiButton.Parent.BackgroundColor = BrickColor.White();
oldButton[0] = guiButton
end
end
function changeColorSelection(colorHolder, paletteFrame, guiButton, selectedButtonTable)
if selectedButtonTable[colorHolder] ~= nil then
selectedButtonTable[colorHolder].Parent.BackgroundColor = BrickColor.Black();
end
guiButton.Parent.BackgroundColor = BrickColor.Yellow();
colorHolder.BackgroundColor = guiButton.BackgroundColor
selectedButtonTable[colorHolder] = guiButton
end
function onMouseUp(colorHolder, paletteFrame, guiButton, selectedButtonTable)
changeColorSelection(colorHolder, paletteFrame, guiButton, selectedButtonTable)
onMouseLeavePalette(paletteFrame)
end
function onShowColorDialog(paletteFrame)
paletteFrame.Visible = not(paletteFrame.Visible)
colorPaletteSelectMode = true
end
function onMouseEnterPalette(mouse)
--mouse.Icon ="rbxasset://textures\\ArrowCursor.png"
colorPaletteSelectMode = true
end
function onMouseLeavePalette(paletteFrame)
colorPaletteSelectMode = false
paletteFrame.Visible = false
end
function processBrickColorValue(value, guiFrame)
local subFrame = sharedProcess(value, guiFrame)
local sideBar = Instance.new("Frame")
sideBar.Position = UDim2.new(0.5, 0, 0.0, 0)
sideBar.Size = UDim2.new(0.5, 0, 1.0, 0)
sideBar.BackgroundTransparency = 1.0
sideBar.Parent = subFrame
sideBar.BorderSizePixel = 0
--sideBar.MouseEnter:connect(function() onMouseEnterGui(mouse) end)
--sideBar.MouseLeave:connect(function() onMouseLeaveGui(mouse) end)
local primaryColor = Instance.new("TextButton")
primaryColor.Position = UDim2.new(0.0, 1, 0.0, 1)
primaryColor.Size = UDim2.new(0.0, height-2, 0, height-2)
primaryColor.Text = ""
primaryColor.BackgroundColor = value.Value
primaryColor.BorderColor = BrickColor.Black()
--primaryColor.BorderSizePixel = 1
primaryColor.Parent = sideBar
local hoverSelection = Instance.new("TextLabel")
hoverSelection.Position = UDim2.new(0.0, height+2, 0.0, 0)
hoverSelection.Size = UDim2.new(1.0, -height - 4, 1.0, 0)
hoverSelection.Text = ""
hoverSelection.BackgroundTransparency = 1.0
hoverSelection.BorderSizePixel = 0
hoverSelection.TextColor = BrickColor.Black()
hoverSelection.Text = primaryColor.BackgroundColor.Name;
hoverSelection.Parent = sideBar
local paletteFrame = Instance.new("Frame")
paletteFrame.Position = UDim2.new(primaryColor.Position.X.Scale, primaryColor.Position.X.Offset + height, primaryColor.Position.Y.Scale, primaryColor.Position.Y.Offset - height*7)
paletteFrame.Size = UDim2.new(0, height*8, 0, height*8)
paletteFrame.BackgroundColor = BrickColor.Black()
paletteFrame.BorderColor = BrickColor.White()
paletteFrame.Visible = false;
paletteFrame.Parent = sideBar
paletteFrame.ZIndex = 2
paletteFrame.MouseEnter:connect(function() onMouseEnterPalette(mouse) end)
paletteFrame.MouseLeave:connect(function() onMouseLeavePalette(paletteFrame, mouse) end)
primaryColor.MouseButton1Down:connect(function() onShowColorDialog(paletteFrame) end)
local selectedButtonTable = {}
local colorButtonTable = {}
local oldButton = {}
for xOffset = 0, 7 do
for yOffset = 0,7 do
local guiFrame = Instance.new("Frame")
guiFrame.Position = UDim2.new(1.0/8 * xOffset, 0, 1.0/8*yOffset, 0)
guiFrame.Size = UDim2.new(1.0/8, 0, 1.0/8, 0)
guiFrame.BackgroundColor = BrickColor.Black();
guiFrame.BorderSizePixel = 0
guiFrame.Parent = paletteFrame;
guiFrame.ZIndex = 2
local guiButton = Instance.new("TextButton")
guiButton.Position = UDim2.new(0.0, 1, 0.0, 1)
guiButton.Size = UDim2.new(1.0, -2, 1.0, -2)
guiButton.Text = ""
guiButton.BorderSizePixel = 0
guiButton.AutoButtonColor = false
local color = BrickColor.palette(xOffset + yOffset*8)
colorButtonTable[color.Number] = guiButton
guiButton.BackgroundColor = color
guiButton.MouseEnter:connect(function() onMouseEnter(hoverSelection, guiButton, selectedButtonTable, oldButton) end)
guiButton.MouseButton1Up:connect(function() onMouseUp(primaryColor, paletteFrame, guiButton, selectedButtonTable, oldButton) end)
guiButton.MouseButton1Up:connect(function() value.Value = guiButton.BackgroundColor end)
guiButton.Parent = guiFrame
guiButton.ZIndex = 2
if guiButton.BackgroundColor == primaryColor.BackgroundColor then
guiFrame.BackgroundColor = BrickColor.White()
selectedButtonTable[primaryColor] = guiButton
end
end
end
valueConnections[#valueConnections+1] = value.Changed:connect(function(newValue) print(newValue) changeColorSelection(primaryColor, paletteFrame, colorButtonTable[newValue.Number], selectedButtonTable) end)
return subFrame
end
function onObjectValueMouseClick(guiFrame, value, objectButton)
objectValueSelect["CancelFrame"].Visible = true
guiFrame.Visible = false
objectValueSelect["Value"] = value
objectValueSelect["Frame"] = guiFrame
objectValueSelect["Enabled"] = true
onObjectValueMouseLeave(value, objectButton)
end
function createObjectSelectCancelFrame(guiMain)
local cancelFrame = Instance.new("Frame")
cancelFrame.Name = "ObjectValueSelectCancel"
cancelFrame.Size = UDim2.new(width.Scale, width.Offset, 0.0, height)
cancelFrame.Position = UDim2.new(0.0, 0, 1.0, -height)
cancelFrame.BackgroundColor = frameColor
cancelFrame.Visible = false
cancelFrame.Parent = guiMain
local objectSelectHint = Instance.new("TextLabel")
objectSelectHint.Size = UDim2.new(0.75, 0, 1.0, 0)
objectSelectHint.Position = UDim2.new(0.0, 0, 0.0, 0)
objectSelectHint.BackgroundTransparency = 1.0
objectSelectHint.Text = "Please select a Part";
objectSelectHint.Parent = cancelFrame
local objectSelectCancelButton = Instance.new("TextButton")
objectSelectCancelButton.Size = UDim2.new(0.25, -4, 1.0, -4)
objectSelectCancelButton.Position = UDim2.new(0.75, 2, 0.0, 2)
objectSelectCancelButton.BackgroundColor = buttonColor
objectSelectCancelButton.Text = "Cancel";
objectSelectCancelButton.MouseButton1Click:connect(function() onObjectValueCancel() end)
objectSelectCancelButton.Parent = cancelFrame
objectValueSelect["CancelFrame"] = cancelFrame
end
function onObjectValueMouseEnter(value, objectButton)
objectValueSelect["HoverBox"].Adornee = value.Value
objectValueSelect["HoverValue"] = value
if value.Value then
objectButton.BackgroundColor = BrickColor.Blue()
else
objectButton.BackgroundColor = BrickColor.White()
end
end
function onObjectValueMouseLeave(value, objectButton)
if objectValueSelect["HoverValue"] == value then
objectValueSelect["HoverBox"].Adornee = nil
objectValueSelect["HoverValue"] = nil
end
objectButton.BackgroundColor = buttonColor
end
function onObjectValueCancel()
if objectValueSelect["Enabled"] then
objectValueSelect["Enabled"] = false
objectValueSelect["Box"].Adornee = nil
objectValueSelect["Frame"].Visible = true
objectValueSelect["CancelFrame"].Visible = false
objectValueSelect["Frame"] = nil
objectValueSelect["Value"] = nil
end
end
function on3dObjectValueButton1Up(mouse, guiMain)
local part = mouse.Target
if part ~= nil then
objectValueSelect["Value"].Value = part
objectValueSelect["Enabled"] = false
objectValueSelect["Box"].Adornee = nil
objectValueSelect["Frame"].Visible = true
objectValueSelect["CancelFrame"].Visible = false
objectValueSelect["Frame"] = nil
objectValueSelect["Value"] = nil
end
end
function on3dObjectValueMouseMove(mouse, guiMain)
local part = mouse.Target
if part and part ~= objectValueSelect["Box"].Adornee then
objectValueSelect["Box"].Adornee = part
end
end
function setObjectButtonText(guiFrame, objectButton, objectValue)
if objectValueSelect["Enabled"] and objectValue == objectValueSelect["Value"] then
guiFrame.Visible = true
objectValueSelect["Enabled"] = false
objectValueSelect["Value"] = nil
end
if objectValue.Value ~= nil then
objectButton.Text = objectValue.Value.Name
else
objectButton.Text = "[nil]"
end
objectButton.BackgroundColor = buttonColor
end
function processObjectValue(value, playerGui, guiFrame)
local subFrame = sharedProcess(value, guiFrame)
local objectButton = Instance.new("TextButton")
objectButton.Position = UDim2.new(0.5, 2, 0.0, 2)
objectButton.Size = UDim2.new(0.5, -4, 1.0, -4)
objectButton.BackgroundColor = buttonColor
objectButton.TextColor = BrickColor.Black()
objectButton.Parent = subFrame
objectButton.AutoButtonColor = false
objectButton.MouseButton1Click:connect(function() onObjectValueMouseClick(guiFrame, value, objectButton) end)
objectButton.MouseEnter:connect(function() onObjectValueMouseEnter(value, objectButton) end)
objectButton.MouseLeave:connect(function() onObjectValueMouseLeave(value, objectButton) end)
valueConnections[#valueConnections+1] = value.Changed:connect(function(newObjectValue) setObjectButtonText(guiFrame, objectButton, value) end)
setObjectButtonText(guiFrame, objectButton, value)
return subFrame
end
function processValue(value, playerGui, guiFrame)
if value.className == "BoolValue" then
return processBoolValue(value, guiFrame)
elseif value.className == "IntValue" then
return processIntValue(value, guiFrame)
elseif value.className == "NumberValue" then
return processNumberValue(value, guiFrame)
elseif value.className == "StringValue" then
return processStringValue(value, guiFrame)
elseif value.className == "ObjectValue" then
return processObjectValue(value, playerGui, guiFrame)
elseif value.className == "BrickColorValue" then
return processBrickColorValue(value, guiFrame)
else
return nil
end
end
function processConfiguration(config, playerGui)
local parentFrame = Instance.new("Frame")
parentFrame.Name = "MainFrame"
parentFrame.BackgroundColor = frameColor
parentFrame.BackgroundTransparency = transparency
local titleLabel = Instance.new("TextLabel")
titleLabel.Size = UDim2.new(1.0, 0.0, 0.0, height)
titleLabel.BackgroundColor = BrickColor.new("Cool yellow")
titleLabel.BackgroundTransparency = 0.75
titleLabel.Text = config.Name
titleLabel.Parent = parentFrame
titleLabel:clone().Parent = parentFrame
local valueChildren = 1
local children = config:GetChildren()
if children then
for pos, child in pairs(children) do
local newFrame = processValue(child, playerGui, parentFrame);
if newFrame then
newFrame.Position = UDim2.new(0.0, 0, 0.0, valueChildren*height)
newFrame.Parent = parentFrame
valueChildren = valueChildren + 1
end
end
end
local buttonFrame = Instance.new("Frame")
buttonFrame.Name = "Buttons"
buttonFrame.BackgroundTransparency = 1.0
buttonFrame.Size = UDim2.new(1.0, 0.0, 0.0, height)
buttonFrame.Position = UDim2.new(0.0, 0, 0.0, valueChildren*height)
buttonFrame.Parent = parentFrame
valueChildren = valueChildren + 1
local okButton = Instance.new("TextButton")
okButton.Text = "Ok"
okButton.Size = UDim2.new(.25, -4, 0.0, height-4)
okButton.Position = UDim2.new(0.5-.25/2, 2, 0.0, 2)
okButton.BackgroundColor = buttonColor
okButton.MouseButton1Click:connect(function() removeSelectionGui() end)
okButton.Parent = buttonFrame
--local cancelButton = Instance.new("TextButton")
--cancelButton.Text = "Cancel"
--cancelButton.Size = UDim2.new(.33, -4, 0.0, height-4)
--cancelButton.Position = UDim2.new(0.33, 2, 0.0, 2)
--cancelButton.BackgroundColor = buttonColor
--cancelButton.MouseButton1Click:connect(function() removeSelectionGui() end)
--cancelButton.Parent = buttonFrame
parentFrame.Size = UDim2.new(width.Scale, width.Offset, 0.0, valueChildren*height)
parentFrame.Position = UDim2.new(0.0, 0, 1.0, -valueChildren*height)
return parentFrame
end
function on3dMouseMove(mouse, guiMain)
if objectValueSelect["Enabled"] then
on3dObjectValueMouseMove(mouse, guiMain)
end
end
function removeSelectionGui()
if selectionGui ~= nil then
selectionGui:Remove()
selectionGui = nil
for pos, connection in pairs(valueConnections) do
connection:disconnect()
end
valueConnections = {}
end
selectionBox.Adornee = nil
selectionLasso.Part = nil
objectValueSelect["Box"].Adornee = nil
objectValueSelect["HoverBox"].Adornee = nil
hintGui.Visible = true
showConfigurationAnnotations()
end
function canSelectObject(part)
return part and not (part.Locked) and part:IsA("BasePart") and (part.Position - Tool.Parent.Head.Position).Magnitude < 60
end
function on3dButton1Up(mouse, guiMain, playerGui)
if objectValueSelect["Enabled"] then
on3dObjectValueButton1Up(mouse, guiMain)
return
elseif canSelectObject(mouse.Target) then
local part = mouse.Target
local children = part:GetChildren()
if children then
for pos, child in pairs(children) do
if child:IsA("Configuration") then
if selectionGui then
removeSelectionGui()
end
hideConfigurationAnnotations()
selectionGui = processConfiguration(child, playerGui)
selectionGui.Parent = guiMain
selectionBox.Adornee = part
selectionLasso.Part = part
hintGui.Visible = false
return;
end
end
end
end
print("3D Button Mouse Up")
removeSelectionGui()
end
function on3dButton1Down(mouse, guiMain, playerGui)
print("3D Button Mouse Down")
end
function onEquippedLocal(mouse)
local character = script.Parent.Parent
local player = game.Players:GetPlayerFromCharacter(character)
guiMain = Instance.new("ScreenGui")
guiMain.Parent = player.PlayerGui
setUpConfigurationService(guiMain)
showConfigurationAnnotations()
createObjectSelectCancelFrame(guiMain)
hintGui = Instance.new("TextLabel")
hintGui.Text = "Click on a Red selected object to change its configuration settings"
hintGui.Position = UDim2.new(0.0, 0, 1.0, -20)
hintGui.Size = UDim2.new(0.5, 0, 0.0, 20)
hintGui.BackgroundColor = frameColor
hintGui.BackgroundTransparency = 0.5
hintGui.Parent = guiMain
mouse.Icon ="rbxasset://textures\\DragCursor.png"
mouse.Button1Down:connect(function() on3dButton1Down(mouse, guiMain, player.PlayerGui) end)
mouse.Button1Up:connect(function() on3dButton1Up(mouse, guiMain, player.PlayerGui) end)
mouse.Move:connect(function() on3dMouseMove(mouse, guiMain) end)
selectionBox = Instance.new("SelectionBox")
selectionBox.Color = BrickColor.Red()
selectionBox.Adornee = nil
selectionBox.Parent = player.PlayerGui;
selectionLasso = Instance.new("SelectionPartLasso")
selectionLasso.Name = "Model Delete Lasso"
selectionLasso.Humanoid = character.Humanoid
selectionLasso.Part = nil
selectionLasso.Visible = true
selectionLasso.archivable = false
selectionLasso.Color = BrickColor.Red()
selectionLasso.Parent = game.workspace
objectValueSelect["HoverBox"] = Instance.new("SelectionBox")
objectValueSelect["HoverBox"].Color = BrickColor.Blue()
objectValueSelect["HoverBox"].Adornee = nil
objectValueSelect["HoverBox"].Parent = player.PlayerGui;
objectValueSelect["Box"] = Instance.new("SelectionBox")
objectValueSelect["Box"].Color = BrickColor.Blue()
objectValueSelect["Box"].Adornee = nil
objectValueSelect["Box"].Parent = player.PlayerGui;
end
function onUnequippedLocal()
destroyConfigurationService()
removeSelectionGui()
selectionBox:Remove()
selectionLasso:Remove()
objectValueSelect["Box"]:Remove()
objectValueSelect["HoverBox"]:Remove()
objectValueSelect["CancelFrame"]:Remove()
guiMain:Remove()
objectValueSelect = {}
end
local configTable = {}
function createVisualAnnotation(config, guiMain)
local selection = Instance.new("SelectionBox")
selection.Color = BrickColor.Red()
selection.Parent = guiMain.Parent
return selection
end
function configurationParentChanged(data, part)
if part and not(part:IsA("BasePart")) then
--Not a legit part, get rid of it
part = nil
end
data["VisualAnnotation"].Adornee = part
end
function showConfigurationAnnotations()
for config, data in pairs(configTable) do
data["VisualAnnotation"].Visible = true
end
end
function hideConfigurationAnnotations()
for config, data in pairs(configTable) do
data["VisualAnnotation"].Visible = false
end
end
function configurationAdded(config, guiMain)
if configTable[config] then
return
end
local data = {}
data = {}
data["Configuration"] = config
data["VisualAnnotation"] = createVisualAnnotation(config, guiMain)
data["Connection"] = config.AncestryChanged:connect(function(child, newParent) if child == config then configurationParentChanged(data, newParent) end end)
configurationParentChanged(data, config.Parent)
configTable[config] = data
end
function configurationRemoved(config)
local data = configTable[config]
if not(data) then
--I have no opinion about this
return
end
data["Connection"]:disconnect()
data["VisualAnnotation"]:Remove()
configTable[config] = nil
end
function setUpConfigurationService(guiMain)
local collectionService = game:GetService("CollectionService")
collectionService.ItemAdded:connect(function(instance) if instance:IsA("Configuration") then configurationAdded(instance, guiMain) end end)
collectionService.ItemRemoved:connect(function(instance) if instance:IsA("Configuration") then configurationRemoved(instance) end end)
local configs = collectionService:GetCollection("Configuration")
if configs then
for pos, config in pairs(configs) do
configurationAdded(config, guiMain)
end
end
end
function destroyConfigurationService()
for config, data in pairs(configTable) do
configurationRemoved(config)
end
end
Tool.Equipped:connect(onEquippedLocal)
Tool.Unequipped:connect(onUnequippedLocal)
true