[Portfolio] Thigbr's Portfolio - Scripter

COMMISSIONS OPENED


Thigbr

Scripter, and UI Designer,
image Thigbr#5855 || image Thigbr

About me

Hello there, I am a 14 year old scripture, am offering my current scripting/services as a Roblox developer. I have been playing Roblox for 6 years now. ( I love object oriented programming ). I’ve been on the Platform scripting/giving my services for about 4-5 months now.

Honorable Experience

Availability

I am available to work 3-4 hours contribution on weekends, 2-3 hours on weekdays,

Code Examples:

Note, Some things may be removed (in the scripts) due to sensitive or client protection

OOP Player Joined/Left Notification system
 - Thigbr
 - 03/25/21
 - Opensourced
]]

-- // Services
local ReplicatedSotrage = game:GetService("ReplicatedStorage")

-- // Remotes
local Notification = ReplicatedSotrage:WaitForChild("Notification")
local Send = Notification:WaitForChild("Send")

-- //
local PlayerJoined = {}
PlayerJoined.__index = PlayerJoined

function PlayerJoined.AddPlayer(plr, TYPE)
    local self = setmetatable({
            Username = plr.Name;
            UserId = plr.UserId;
            Type = TYPE == "Joined" and "Successfully Connected" or "Successfully Disconnected"
        }, PlayerJoined)
        self:RunData()
	return self
end

function PlayerJoined:RunData()
	print({
		"Name: "..self.Username;
		"ID: "..self.UserId;
		self.Username..":"..self.UserId;
		"Server: "..game.JobId;
		"Type: "..self.Type
	})
	Send:FireAllClients(self.Username..self.Type.."!" --[[Title]], self.Username.." Has "..self.Type.." from the Server!" --[[Description]], 20 --[[Duration]])
end

return PlayerJoined
OOP Cheque Hanlder
Module Script
local Modules = game.ReplicatedStorage.Modules

local Wages = require(game.ReplicatedStorage.Modules.Wages)


local Handler = {}

Handler.__index = Handler

function Handler.Init(plr)

local self = setmetatable({

Player = plr,

Wage = 6,

}, Handler)

return self

end

function Handler:Serialize()

if Wages["Team"][tostring(self.Player.Team)] then

self.Wage = Wages["Team"][tostring(self.Player.Team)].Payout

end

end

function Handler:Pay()

local playerData = Datastore:getPlayerData(self.Player)

print(playerData)

playerData.Currency.Bank += self.Wage

game.ReplicatedStorage.RemoteEvents.Notification:FireClient(self.Player, "Income!", "You have successfully received "..self.Wage.."$, This money has been transferred to your Banking account!", 5)

game.ReplicatedStorage.RemoteEvents.Updater:FireClient(self.Player, "BANK", playerData.Currency.Bank)

end

return Handler
Regular Script
local Modules = game.ReplicatedStorage.Modules
local Cheque = require(script.ChequeHandler)
local Wages = require(game.ReplicatedStorage.Modules.Wages)
local Cheques = {}

game.Players.PlayerAdded:Connect(function(plr)
	local playerData = Datastore:getPlayerData(plr)
	Cheques[plr] = Cheque.Init(plr)
	Cheques[plr]:Serialize()
	print(playerData)
	print(playerData.Currency.Bank)
	game.ReplicatedStorage.RemoteEvents.Updater:FireClient(plr, "BANK", playerData.Currency.Bank)
	game.ReplicatedStorage.RemoteEvents.Notification:FireAllClients("Player Connected!", plr.Name.." has Successfully connected to the server!", 6)
	plr.Character.Humanoid.Died:Connect(function(char)
		game.ReplicatedStorage.RemoteEvents.Notification:FireAllClients("Player Died!", plr.Name.." has been Sccessfully rejestered deceased!", 6)
	end)
end)

game.Players.PlayerRemoving:Connect(function(plr)
	Datastore:SaveData(plr)
	Cheques[plr] = nil
end)

coroutine.wrap(function()
	while wait(Wages.Team.Del) do
		print(Cheques)
		for _, tracker in pairs(Cheques) do
			tracker:Pay()
		end
	end
end)()
Wages
local Wages = {
	Team = {
		Del = 7,
		["Citizns"] = {
			Payout = 12},
		["Richford County Sheriff's Office"] = {
			Payout = 17},
		["Richford State Police"] = {
			Payout = 18},
	},
}

return Wages
OOP Killogs
Main Module
local module = {}
module.__index = module

function getRealTime(Time)
	local ExactTime     = os.date("!*t",Time)
	local Hr, min, sec, day, mnth, year = ExactTime.hour,  ExactTime.min, ExactTime.sec, ExactTime.day, ExactTime.month, ExactTime.year
	return ("%d-%02d-%02dT%02d:%02d:%02dZ"):format(year, mnth, day, Hr, min, sec)
end

function module.GetTable(plr, tagger)
	local self = setmetatable({
		Player = plr.Name,
		PlayerUserId = plr.UserId,
		Tagger = tagger.Name,
		TaggerUserId = tagger.UserId
	}, module)

	return self
end

function module:SendInfo()	
	local data = {
		embeds = {
			{
				author = {name = "Player Killed!"},
				title = "Server: "..game.JobId,
				description = self.Player..":"..self.PlayerUserId.." has Killed "..self.Tagger..self.TaggerUserId,
				timestamp = getRealTime(tick()),
				color = "205364",		
				type = "rich",
			}
		}
	}	
	local newdata = http:JSONEncode(data)
	http:PostAsync(DiscordWebhook,newdata)
end

return module
Other Module
--[[[

- Thigbr

- 03/29/21

]]

-- // Services

local Debris = game:GetService("Debris")

-- // Functions

function CreateTag(humanoid, Tagger)

local foundCreator = humanoid:FindFirstChild("creator")

if foundCreator then foundCreator:Destroy() end

local Creator_Tag = Instance.new("ObjectValue")

Creator_Tag.Name = "creator"

Creator_Tag.Value = Tagger

Debris:AddItem(Creator_Tag, 2)

Creator_Tag.Parent = humanoid

end

Payment

Prices are negotiable, I accept either hourly pay or per asset. My preferred payment method is robux.

Personal Favorites

https://streamable.com/ngdqt5
https://streamable.com/m083mb
https://streamable.com/ozobbu

Contact

Scripter, and UI Designer,
image Thigbr#5855 || image Thigbr

Thanks for reading my portfolio! :slight_smile:

3 Likes