Hey guys! I’m Void_Trader, also known as Void_Developer, but you can call me Void for short! I’m an aspiring game developer/programmer, and I like to develop and code games that are fun to play, including: merge games, simulators, obby games, tower defense games, and many more! I’ve been scripting on Roblox Studio for about 3 years, learning and growing as a developer every day! Also more facts about me: I play sports like Basketball and American Football. I also like to workout and play the guitar. My favorite programming languages are Python, C#, and Lua! I can’t wait to help you all with your creations!
Fun Fact: I’ve been trading limiteds for 3 years, and I’ve amassed over 170K value
My Past Work and Experience:
(Note: I don’t post links to games since I keep the games privated, but I post images and videos)
Past Games I've Worked On
-
Find The Cubes! (Includes: Tweens, Datastore, Leaderstats, Modules, Remote Event, etc.) It is Single Player!
Scripts
Here are some scripts I’ve made!
(From: Find The Cubes) Script that handles the Gui when you find a cube and the adding of the cube to the inventory.
--Script is the Receiver of Remote Event
--Services
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local TweenService = game:GetService("TweenService")
local SoundService = game:GetService("SoundService")
--Variables
local FoundCubeRemoteEvent = ReplicatedStorage:WaitForChild("FoundCubeRemoteEvent")
local FoundCubeGui = script.Parent
local FoundCubeFrame = FoundCubeGui:WaitForChild("FoundCubeFrame")
local FoundCubeLabel = FoundCubeFrame:WaitForChild("FoundCubeLabel")
local CubeViewportFrame = FoundCubeFrame:WaitForChild("CubeViewportFrame")
--Inventory Variables
local InventoryGui = FoundCubeGui.Parent:WaitForChild("InventoryGui")
local InventoryFrame = InventoryGui:WaitForChild("InventoryFrame")
local ScrollingFrame = InventoryFrame:WaitForChild("ScrollingFrame")
local CubeFrame = InventoryGui:WaitForChild("CubeFrame")
--Listener of Remote Event
FoundCubeRemoteEvent.OnClientEvent:Connect(function(cubeObject)
--Setting Frame visibility to true (Cube Pop-Up)
FoundCubeFrame.Visible = true
FoundCubeFrame:WaitForChild("FoundCubeLabel").Text = cubeObject.Name .. "!"
print(FoundCubeFrame:WaitForChild("FoundCubeLabel").Text)
local rarity = cubeObject:WaitForChild("Rarity")
local FoundSound1 = SoundService:WaitForChild("SoundEffects"):WaitForChild("FoundSound1")
local FoundSound2 = SoundService:WaitForChild("SoundEffects"):WaitForChild("FoundSound2")
--Update Inventory
local NewCubeFrame = CubeFrame:Clone()
local InvCubeNameLabel = NewCubeFrame:WaitForChild("CubeNameLabel")
--Setting Inventory CubeNameLabel's Text Value
InvCubeNameLabel.Text = cubeObject.Name
--Setting Inventory CubeNameLabel's TextColor3
if rarity.Value == "Common" then
InvCubeNameLabel.TextColor3 = Color3.new(0.470588, 0.470588, 0.470588)
elseif rarity.Value == "Uncommon" then
InvCubeNameLabel.TextColor3 = Color3.new(0.0823529, 0.658824, 0.14902)
elseif rarity.Value == "Rare" then
InvCubeNameLabel.TextColor3 = Color3.new(0.0666667, 0.243137, 0.886275)
elseif rarity.Value == "Epic" then
InvCubeNameLabel.TextColor3 = Color3.new(0.419608, 0.0745098, 0.905882)
end
--Setting up ViewPortFrame
local viewport = NewCubeFrame:WaitForChild("CubeViewportFrame")
local newCubeObject = cubeObject:Clone()
newCubeObject.Parent = viewport
local invCamera = Instance.new("Camera")
invCamera.Parent = viewport
viewport.CurrentCamera = invCamera
invCamera.CFrame = newCubeObject.CFrame * CFrame.new(0, 0, -(newCubeObject.Size.z * 1.7)) * CFrame.Angles(0, math.rad(180), 0)
if newCubeObject.Name == "UpsideDownCube" then
invCamera.CFrame = invCamera.CFrame * CFrame.Angles(0, 0, math.rad(180))
end
--Setting NewCubeFrame's Parent to Inventory ScrollingFrame
NewCubeFrame.Parent = ScrollingFrame
NewCubeFrame.Visible = true
--Cube Pop-Up
--Sets the color property of the FoundCubeLabel to the color of the rarity
if rarity.Value == "Common" then
FoundCubeLabel.TextColor3 = Color3.new(0.470588, 0.470588, 0.470588)
FoundSound1:Play()
elseif rarity.Value == "Uncommon" then
FoundCubeLabel.TextColor3 = Color3.new(0.0823529, 0.658824, 0.14902)
FoundSound1:Play()
elseif rarity.Value == "Rare" then
FoundCubeLabel.TextColor3 = Color3.new(0.0666667, 0.243137, 0.886275)
FoundSound1:Play()
elseif rarity.Value == "Epic" then
FoundCubeLabel.TextColor3 = Color3.new(0.419608, 0.0745098, 0.905882)
FoundSound2:Play()
else
print("Rarity not listed")
end --Expand when more rarities!
--ViewPort
CubeViewportFrame:ClearAllChildren() --Removing previous cubes and cameras from the cube viewport frame to refresh it
local cubeClone = cubeObject:Clone()
cubeClone.Parent = CubeViewportFrame
local camera = Instance.new("Camera")
camera.Parent = CubeViewportFrame
CubeViewportFrame.CurrentCamera = camera
camera.CFrame = cubeClone.CFrame * CFrame.new(0, 0, -(cubeClone.Size.z * 1.7)) * CFrame.Angles(0, math.rad(180), 0)
if cubeClone.Name == "UpsideDownCube" then
camera.CFrame = camera.CFrame * CFrame.Angles(0, 0, math.rad(180))
end
--Tween In
FoundCubeFrame:TweenPosition(
UDim2.new(0.399, 0, 0.139, 0), --End Position
"Out", --Easing Direction
"Bounce", --Easing Style
1.5, --Time in Seconds
false --Overide any other tweens
)
wait(2.5)
--Tween Out
FoundCubeFrame:TweenPosition(
UDim2.new(0.399, 0,-1, 0), --End Position
"Out", --Easing Direction
"Quad", --Easing Style
1, --Time in Seconds
false --Overide any other tweens
)
wait(1)
--Setting Frame visibility to false
FoundCubeFrame.Visible = false
end)
(From: Find The Cubes) Script that handles when a player collects a cube (server-sided), checking if the player has already found it, and also runs a remote event that is sent to the client, which allows the previous script (The script that handles the Gui), to run.
local CubesModule = require(game:GetService("ServerScriptService").CubesModule)
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local FoundCubeRemoteEvent = ReplicatedStorage:WaitForChild("FoundCubeRemoteEvent")
local players = game:GetService("Players")
local cube = script.Parent
foundCubes = CubesModule.FoundCubes
--When the cube is found by player
cube.Touched:Connect(function(touch)
if touch.Parent:FindFirstChild("Humanoid") then
local char = touch.Parent
local plr = players:GetPlayerFromCharacter(char)
--Checks if already found
local check
for i, v in pairs(CubesModule.FoundCubes) do
if v == cube.Name then
check = true
end
end
--If cube not found yet then this cube is found
if check ~= true then
print(tostring(plr) .. " found " .. cube.Name)
local cubeStringValue = Instance.new("StringValue")
cubeStringValue.Value = cube.Name
cubeStringValue.Name = cube.Name
cubeStringValue.Parent = plr:WaitForChild("Player_FoundCubes_Folder")
table.insert(CubesModule.FoundCubes, cube.Name)
CubesModule.CubeCount = #(CubesModule.FoundCubes)
plr:WaitForChild("leaderstats"):WaitForChild("Cubes").Value = CubesModule.CubeCount
print(CubesModule.CubeCount)
print(plr.leaderstats.Cubes.Value)
print(CubesModule.FoundCubes)
FoundCubeRemoteEvent:FireClient(plr, cube)
end
end
end)
My strengths as a programmer are the following:
- Communication between Server and Client (Remote Events)
- Visual Effects using Code (Tweens)
- Saving Data (Datastores)
- Code Readability
- Effective Commenting in Scripts
Ideas I am currently exploring and actively learning about:
- OOP (Object Oriented Programming)
- Advanced CFrame
- Raycasting
Currently I am accepting Commissions, but I don’t accept long-term commissions!
I accept USD$ payments and Robux payments , but I don’t accept percentage-based payments. Upon completion of the commission, I will ask for the pay, and in return I will provide you with the completed code (Preferably .rbxm file format), and any other info you may need.Contacts:
- Devforums (Replying to this post)
- Gmail (Prefered): bluecortexgamer@gmail.com
So with that out of the way, I’d be happy to help with your creation!
The timezone that I work in is CST. I am usually more availible during the weekends because of school, but I still may be available during the weekdays.
My schedule for development:
- During weekends (+ Friday), I am usually available from 6pm - 11pm.
- During weekdays (Monday - Thursday), if I am available I can work from 6pm - 9pm, but this may vary!
Hopefully we can find a schedule that works for the both of us!