About Me
Greetings! I am Panda and I specialize in programming. I’ve been programming with Python for over a year and Lua for 5 months. I am a developer that likes to learn and improve. If you notice any differences between some code examples then it might be because I improve!
Showcase
Code Examples
Inventory System
--Inventory Data Store
local InventoryDataStore = {}
local Players = game:GetService("Players")
local localPlayer = Players.LocalPlayer
local dataStoreService = game:GetService("DataStoreService")
local playerData = dataStoreService:GetDataStore("PlayerData")
local sessionData = {}
local toolsFolder = game.ReplicatedStorage:WaitForChild("Tools")
local function setUpPlayerTools(player)
local playerUserId = player.UserId
sessionData[playerUserId] = {Inventory = {""}}
local data
local success, err = pcall(function()
data = playerData:GetAsync(playerUserId)
end)
if success and data then
sessionData[playerUserId] = data
print(sessionData[playerUserId])
end
print("loading tools")
InventoryDataStore.loadTools(player)
player.CharacterAdded:Connect(function()
InventoryDataStore.loadTools(player)
end)
end
function InventoryDataStore.saveData(player)
local playerUserId = player.UserId
local backpack = player:WaitForChild("Backpack")
local children = backpack:GetChildren()
for index, value in pairs(children) do
local playerSessionData = sessionData[playerUserId]
if not table.find(playerSessionData.Inventory, value.Name) then
table.insert(playerSessionData.Inventory, value.Name)
end
end
print(sessionData[playerUserId])
local success = pcall(function()
playerData:SetAsync(playerUserId, sessionData[playerUserId])
end)
end
InventoryDataStore.createTools = function(player, name)
local playerUserId = player.UserId
wait(10)
local tool = toolsFolder:WaitForChild(name)
local newTool = tool:Clone()
newTool.Parent = player.Backpack
local playerSessionData = sessionData[playerUserId]
if not table.find(playerSessionData.Inventory, name) then
print('adding to table')
table.insert(playerSessionData.Inventory, name)
end
end
InventoryDataStore.loadTools = function(player)
local playerUserId = player.UserId
if sessionData[playerUserId].Inventory == nil then
print("Inventory nil!")
wait(3)
else
if #sessionData[playerUserId].Inventory == 0 then
print("nothing in inventory!")
else
for i, toolName in pairs(sessionData[playerUserId].Inventory) do
InventoryDataStore.createTools(player, toolName)
print("Created tool!")
end
end
end
end
Players.PlayerAdded:Connect(function(player)
setUpPlayerTools(player)
end)
Players.PlayerRemoving:Connect(function(player)
InventoryDataStore.saveData(player)
end)
return InventoryDataStore
Hotbar system
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local InventoryTemplate = ReplicatedStorage:WaitForChild("Values")
local InventoryGuiTemplate = game.StarterGui.InventoryGUI.Template
local Players = game:GetService("Players")
local InventoryDataStore = game.ServerStorage:WaitForChild("InventoryDataStore")
local function setUpInventory(player)
local Inventory = player:WaitForChild("Backpack")
local PlayerGUI = player:WaitForChild("PlayerGui")
local InventoryGui = PlayerGUI:WaitForChild("InventoryGUI")
local rounds = 0
for i, item in pairs(Inventory:GetChildren()) do
print("trying")
rounds = rounds + 1
local itemGui = InventoryGuiTemplate.item:Clone()
itemGui.Name = item.Name
itemGui.TextLabel.Text = rounds
itemGui.Parent = player.PlayerGui.InventoryGUI.Frame
itemGui.Visible = true
end
while rounds < 5 do
print("trying")
rounds = rounds + 1
local itemGui = InventoryGuiTemplate.item:Clone()
itemGui.Name = "empty"
itemGui.TextLabel.Text = rounds
itemGui.Parent = player.PlayerGui.InventoryGUI.Frame
itemGui.Visible = true
end
end
game.Players.PlayerAdded:Connect(function(player)
setUpInventory(player)
end)
local player = game.Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
character.ChildAdded:Connect(function(child)
if (child:IsA('Backpack')) then
setUpInventory(player)
InventoryDataStore.loadTools()
end
end)
NPC Spawning System using Procedural Generation
local ServerStorage = game:GetService("ServerStorage")
local dummyFolder = ServerStorage:WaitForChild("Dummies")
local function GenerateDensity(size, seed, freq)
local densityGeneration = {}
for x = 1, size do
local hx = {}
densityGeneration[x] = hx
for z = 1, size do
local y = math.noise((x + seed) / freq, (z + seed) / freq)
hx[z] = math.clamp(y + 0.5, 0, 1)
end
end
return densityGeneration
end
local function spawnDummies()
local density = GenerateDensity(100, 45, 10)
local dummy = dummyFolder.Dummy
local rng = Random.new(0, 1)
for x = 1, #density do
local hx = density[x]
for z = 1, #hx do
local y = hx[z]
local thing = rng:NextNumber(0, 1)
if (thing < y) then
local newDummy = dummy:Clone()
newDummy:SetPrimaryPartCFrame(CFrame.new(x + rng:NextNumber(-1, 1), 0.5, z + rng:NextNumber(-1, 1)))
newDummy.Parent = game.Workspace
wait(1)
print("New dummy created")
end
end
end
end
spawnDummies()
Ranking bot
--Web
var groupId = 9532010
var cookie = " "
const express = require("express");
const rbx = require("noblox.js");
const app = express();
app.use(express.static("public"));
async function startApp() {
await rbx.cookieLogin(cookie);
}
startApp();
app.get('/ranker', (req, res) => {
rbx.setRank(groupId, parseInt(req.param("userId")), parseInt(req.param("rank")));
res.json("Ranked user!")
})
const listener = app.listen(process.env.PORT, () => {
console.log("App is listening at port " + listener.address().port)
})
local URL = ""
local Players = game:GetService("Players")
local MarketplaceService = game:GetService("MarketplaceService")
local fabulous = 3
local dynamic = 4
local lavish = 5
local ClothingList = {}
local function rankUser(userId, roleId)
game:GetService("HttpService"):GetAsync(URL .. "ranker?user_id=" .. userId .. "&rank=" .. roleId)
end
Players.PlayerAdded:Connect(function(player)
local ownedStuff = 0
for i,v in pairs(ClothingList) do
if MarketplaceService:PlayerOwnsAsset(player, v) then
ownedStuff = ownedStuff + 1
end
end
if ownedStuff < 5 then
if ownedStuff == 0 then
print("no clothing")
else
rankUser(player.UserId, fabulous)
print("ranked user")
end
elseif ownedStuff >= 5 then
rankUser(player.UserId, dynamic)
elseif ownedStuff >= 15 then
rankUser(player.UserId, lavish)
end
end)
Tools I’m familiar with
Rojo
Git & Github
roblox-ts(very new)
Trello
Availability
I am available for 3 to 5 hours on weekends. However, I can only work 2 hours on weekdays due to school.
Payment
Prices change to the amount of work that’s needed to be done. I can accept payment per project or hourly pay. If I like the project, I can also accept percentages. I can’t accept full-time projects as I am busy with school.
Contact
You can contact me here on the Developer Forum or via Discord at pandalikescaps#1005
Thanks for reading!