Void_Trader Portfolio | Scripter

Hey guys! :wave: 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! :star_struck: Also more facts about me: I play sports like Basketball :basketball: and American Football. :football: I also like to workout :muscle: and play the guitar. :guitar: My favorite programming languages are Python, C#, and Lua! :scroll: I can’t wait to help you all with your creations! :zap:

Fun Fact: I’ve been trading limiteds for 3 years, and I’ve amassed over 170K value :chart_with_upwards_trend:

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)

Current Games I'm Working On
Past Games I've Worked On
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 :moneybag: and Robux payments :robux_light:, 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:

So with that out of the way, I’d be happy to help with your creation! :star_struck:

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! :zap: