#๐Ÿ’ก Give refrence in scripting guidelines because its hard to know what exactly needed for role lik...

1 messages ยท Page 1 of 1 (latest)

fringe gullBOT
olive smelt
#

skid

hallow ore
#

I would agree that their guidelines is very vague and doesn't really explain what each role requirements are. A ranker told me they might be reworking the scripters guidelines but idk if they still are

#

For s1 it's just having a good understanding over the basics. This includes luau's syntax, some Roblox API, and a good understanding over basic design principles and naming conventions

fallen trout
#

s2? @hallow ore

#

and do u have any code that you would consider low s2

hallow ore
#

It differs from script to script

#

But a solid foundation of (lua) oop, (simple to complex) data structures, high foundation of Roblox API (datastore, tweenservice, etc.) and being robust at modularity and scalability. All code must be game ready and heavily commented

#

The term "Game ready" for code is defined as being optimized and must be used within a game mechanic or game system

#

So if you make something that is outside the bounds of a game system, it wouldn't be considered by the rankers

fallen trout
#

Yeah see now

#

Rankers dont accept that for s2

#

they take Heavily Complex constructs of code that are 350 lines+ and are merely used in a game

#

As long as it has Typechecking and 250+ lines, its s2

hallow ore
#

huh?

hallow ore
#

I had to send this incomplete editable images framework to get s2 lowkey so idk

fallen trout
hallow ore
#

Idk cuz this was the thing that got me s2

#

The other stuff I sent got discarded because they were too simple

#

I prob would've gotten s3 if it was complete

slow quarry
#

is it that hard to get s2

#

damn

hallow ore
slow quarry
#

bruh\

#

e

fallen trout
slow quarry
fallen trout
#

not really

#

but a good example is this

#

Pretty low s1 code

#

but can become s2 in a snap

#

the biggest difference is how a s1 handles it and an s2

#

if this used better methods other than while true and had more functionality it could go up to low s2

#

But for now its low s1

#

because it doesnt have the features of s2

#

nor the best practices

hallow ore
slow quarry
#

looks like s2 but is still s1 sadly

fallen trout
#

I changed the whole while true logic

#

to step functions

#

and making use of dt / deltatime

fallen trout
fallen trout
#

But its not really more than Mid s1

fallen trout
#

Now its mid s1

#

changed somethings

hallow ore
fallen trout
#

the actual Idea can be s2

#

Right now its like low - mid s1

hallow ore
slow quarry
#

idk i sumbitted literal shi for s1

#

like data store basics

#

and really basic stuff

#

and i got s1

slow quarry
fallen trout
#

Like.. no joke

#

S4 is easier

#

S3 is like, selling your soul ahh

fallen trout
fallen trout
hallow ore
#

In a little bit

fallen trout
#

Tysm

hallow ore
#

dawg ur being weird

fallen trout
#

My bad @hallow ore

#

Now send

hallow ore
#

This was the ToolControllerClass

#
--// Services \\--

--// Modules \\--
local ToolSettingsManager = require(script:WaitForChild("ToolSettingsManager"))

--// Misc \\--
local ComponentsFolder = script.Components

--// Private Dependencies \\--
local Tools = {"Brush", "Erase", "Fill", "EyeDrop", "Lasso", "Select"}

local ToolClass = {}
ToolClass.__index = ToolClass

type Tool = "Brush" | "Erase" | "Fill" | "EyeDrop"

--// Private Functions \\--

--// Public Functions \\--

function ToolClass.new(CanvasController)
    local self = setmetatable({}, ToolClass)
    self._CanvasController = CanvasController
    self._ActiveTool = "Brush" :: Tool
    
    self._ToolIndex = 1
    self._CursorSize = 10
    
    self._CurrentTransparency = 0
    
    self._Components = {}
    
    self:_Init()
    return self
end

function ToolClass:_Init()
    --Creates tool components
    for _, Component in ComponentsFolder:GetChildren() do
        if not Component:IsA("ModuleScript") then continue end
        self._Components[Component.Name] = require(Component).new(self, self._CanvasController)
    end
    
    --Creates appropriate tool settings ui
    
    --TODO
    warn("[TOOL CONTROLLER CLASS] SETTING CREATION CURRENTLY GET'S UI ELEMENTS UNSAFELY AND UNMODULAR. PLEASE FIX THIS")
    
    for _, Component in self._Components do
        if not Component["GetSettings"] then continue end
        local ComponentSettings = Component:GetSettings()
        
        for _, Setting in ComponentSettings do
            if not Setting["SettingType"] then continue end
            local SettingsContainer = Instance.new("Folder")
            SettingsContainer.Name = Component.Type
            SettingsContainer.Parent = script.Parent.Ui.CanvasGui.ElementsCache.ToolSettings
            
            ToolSettingsManager:CreateToolSetting(Setting, Component.Type, nil, SettingsContainer)
        end
    end
end

--Sets the tool from an array of tools
function ToolClass:SetToolFromIndex(Index: number)
    if self._ToolIndex == Index then return end
    if not Tools[Index] then return end
    
    self._ToolIndex = Index
    self._ActiveTool = Tools[Index]
end

--Gets the next tool from the tool-list.
--Returns the tool and the index
function ToolClass:GetNextTool(): (string, number)
    local Index = self._ToolIndex + 1
    if Index >= #Tools then
        Index = 1
    end
    
    return Tools[Index], Index
end

function ToolClass:GetPreviousTool(): (string, number)
    local Index = self._ToolIndex - 1
    if Index < 1 then
        Index = #Tools
    end
    
    return Tools[Index], Index
end

function ToolClass:GetTool(): (string, number)
    return self._ActiveTool, self._ToolIndex
end

function ToolClass:GetAllTools(): {string}
    return Tools
end

function ToolClass:ActivateTool<data>(...: data?): data?
    if not self._Components[`{self:GetTool()}Tool`] then return end
    
    return self._Components[`{self:GetTool()}Tool`]:Invoke(...)
end

function ToolClass:GetComponent(ToolName: Tool): any?
    return self._Components[`{ToolName}Tool`]
end

function ToolClass:_GetAllComponents()
    return self._Components
end

function ToolClass:Update(Data)
    for _, Component in self:_GetAllComponents() do
        if not Component["Update"] then continue end
        Component:Update(Data)
    end
end

return ToolClass
#

This entire system was unfinished and early stages

fallen trout
#

ts is s2?

#

wtf'

#

this is literally just oop

#

Init() and new() are the only understandable ones

#

if thats s2 then me adding oop to my Ai plane is s2

#

but no hate

hallow ore
#

I mean this is just one script

#

The entire system runs off of components and other useful stuff

fallen trout
#

fair

#

but u do gotta admit

hallow ore
#

admit what?

#

I showed you a single script within the entire system?

#

Yours wasn't even "ai"

slow quarry
hallow ore
#

s4 is harder to earn than s3 ๐Ÿ˜ญ

slow quarry
#

props to you for getting s2

hallow ore
slow quarry
#

xd

slow quarry
hallow ore
slow quarry
#

i mean if s2 is 650 lines

#

s3 like a idk like a full game script probably

#

like if s2 is only for making systems

#

then s3 would require to make a game

#

sm what

fallen trout
#

S3 Is just being good at physics and math

#

this is s3 code

#

from Omrezkeypie

hallow ore
hallow ore
fallen trout
#

But the code is s3

hallow ore
#

That is not s3

fallen trout
#

what is it

hallow ore
#

s2

fallen trout
#

sure buddy

#

if thats s2 then the gap between s2 and s3 is nothing, while the gap between s1 and s2 is extremely high

slow quarry
#

is this s2 or s3

#

i get the fact this single thing cant get me s2 or whatever you think it is but atleast like 1/5 concepts would be done :DDDD

slow quarry
#

s3 is mastering LUA in everyway i spose

fallen trout
#

The problem is

#

S2's like to make something they have achieved much harder than it really is

#

They have that pride in them

#

Not necessarily rude people

fallen trout
#

Out of their own code, not copying

#
local PlaneHandler = {}

local runservice = game:GetService("RunService")

local BP1, BP2, BP3 = game.Workspace:WaitForChild("BP1"), game.Workspace:WaitForChild("BP2"), game.Workspace:WaitForChild("BP3")
local functions = {}

function PlaneHandler.DetectBoundingBox(plane: UnionOperation)
    local exclusions = {BP1,BP2,BP3}
    local Params = OverlapParams.new()
    Params.FilterType = Enum.RaycastFilterType.Exclude
    Params.FilterDescendantsInstances = exclusions
    
    local connection
    connection = runservice.Heartbeat:Connect(function()
        local BB_CFrame: CFrame = CFrame.new(-2669.7, 18.5, -6)
        local Size: Vector3 = Vector3.new(2047.8, 8, 2048) * 2
        
        local AABB = workspace:GetPartBoundsInBox(BB_CFrame, Size, Params)
        
        for _, Plane: UnionOperation in AABB do
            if Plane:IsA("UnionOperation") and Plane.Name == plane.Name then
                plane:SetAttribute("InBoundingBox", true)
            end
        end
        
        if not AABB then
            connection:Disconnect()
            return
        end
    end)
    
end

function PlaneHandler.Accelerate(plane: UnionOperation , Speed: number)
    local connection
    connection = runservice.Heartbeat:Connect(function()
        if math.abs(Speed) > -1 then
            local currentPos = plane.Position
            local incrementedX = currentPos.X + Speed

            plane.Position = Vector3.new(incrementedX, currentPos.Y, currentPos.Z)
            
            if plane:GetAttribute("InBoundingBox") == true then
                if Speed < 0 then
                    Speed = -0.8
                    task.wait(20)
                    Speed = -0.5
                end
                return
            end
        end
    end)
end
#
function PlaneHandler.TakeOff(plane: UnionOperation, incrementYvalue: number)
    task.wait(3)
    plane.CFrame = plane.CFrame * CFrame.Angles(0,0,-0.05)
    
    local connection
    
    connection = runservice.Heartbeat:Connect(function()
        local currentPos = plane.Position
        local IncrementedY = currentPos.Y + incrementYvalue
        
        plane.Position = Vector3.new(currentPos.X, IncrementedY, currentPos.Z)
        
        if plane:GetAttribute("InBoundingBox") == true then
            connection:Disconnect()
            return
        end
    end)
end


function PlaneHandler.Land(plane: UnionOperation, decrementYvalue: number)
    task.wait(20)
    plane.CFrame = plane.CFrame * CFrame.Angles(0,0,0.1)
    
    local connection
    
    connection = runservice.Heartbeat:Connect(function()
        
        local currentPos = plane.Position
        local DecrementedY = currentPos.Y - decrementYvalue

        plane.Position = Vector3.new(currentPos.X, DecrementedY, currentPos.Z)
        
        if plane:GetAttribute("InBoundingBox") == true then
            connection:Disconnect()
            return
        end
    end)
end
#

function PlaneHandler.Initialize(plane, Speed, decrementY, IncrementY)
    task.wait(5)
    task.spawn(function()
        PlaneHandler.Accelerate(plane, Speed)
        PlaneHandler.TakeOff(plane, IncrementY)
        PlaneHandler.Land(plane, decrementY)
        PlaneHandler.DetectBoundingBox(plane)
    end)
end

return PlaneHandler
#

@slow quarry I finished the core of it

#

just gotta add features now

hallow ore
#

I don't think you understand that

fallen trout
#

yeah but

hallow ore
fallen trout
#

your kinda overrating s2

hallow ore
hallow ore
hallow ore
fallen trout
#

but it didnt work

hallow ore
#

Is this client or server?

fallen trout
#

all server

hallow ore
#

What is the point of the :WaitForChild then?

fallen trout
#

Im not that experienced with the difference of using WaitForChild vs FindFirstChild

hallow ore
#

Or do

#

WaitForChild waits for something to exist, but is not needed like 98% of the time on the server

#

It's used primarily to get something that is still loading in on the client side

#

:FindFirstChild finds the first child of an instance with the given name

#

That is usually used to check if that object exists

#

Since it returns nil or the item

fallen trout
#

but i just need those 2 arrows next to my name๐Ÿ˜ญ

hallow ore
#

s2 is the minimum for pro scripting

#

So obviously the bar will be raised higher for s1's

#

You must know ALL of the basics of luau and use them semi-efficiently with low amount of issues

#

s2 is having a high understanding over the api, math, and better code & system structures

slow quarry
slow quarry
fallen trout
#

idk tho

slow quarry
#

nah what

#

it aint s1

#

its probably s2

#

like aint no way

ashen wharf
#

e

fallen trout
#

2 people have told me its low s2

#

but another 2 have told me its high s1

slow quarry
#

You cant really trust a person with no scripter role so people who told you HAD the role then they might be correct

hallow ore
#

I can re-read it and tell u again

#

But most likely it's s1

fallen trout
#

Alr chilllll

#

it was never that deep

hallow ore
#

?

#

I just asked if u want me to read it

#

idk how that is deep

slow quarry
#

epik

#

no figthing :DDDDDDD

fallen trout
slow quarry
#

and i dont have the rest really

#

but it was a gamepass thing i coded

#

and i gave it

#

about 3 works

fallen trout
slow quarry
fallen trout
slow quarry
#

or else i have all my code for beginners and advanced

#

but i dont think any of it is much more than high s1

slow quarry
#

woah

#

you got s1

#

W

fallen trout
slow quarry
#

wtv nice

#

what sort of work did you sumbit for it?

fallen trout
#

But rn

#

This is what i submitted rn

#

Monologue System: https://pastebin.com/7MvsSj8J

Sprint System: https://pastebin.com/gm9T5Exg

Plane Mover thing: https://pastebin.com/hRG79WxQ

Unfinished CombatService: https://pastebin.com/EYxZeR48

#

@slow quarry

#

Also the reason all of these are S1 is because they have many edge cases, and dont cover memory leaks and etc.... Some places i use connection but never disconnect it, some places i dont use *= for Position and CFrame operations, which is a nitpick but still reduces

#

So In general its all Mid S1, lmk if you agree @hallow ore
||I have come to terms that its nowhere near s2||

slow quarry
slow quarry
#

if you improve stuff ig

slow quarry
slow quarry
#

you are doing good till now xd

slow quarry
fallen trout
slow quarry
#

alr bro dont make fun of me

#

i only found one

#

since they are old

#

`local test = game.Workspace.PremiumArea.HEHE
local bruh = 20

while bruh == 20 do
test.BrickColor = BrickColor.new("Dark green")
task.wait(1)
test.BrickColor = BrickColor.new("Dark blue")
task.wait(1)
test.BrickColor = BrickColor.new("Really red")
task.wait(1)
test.BrickColor = BrickColor.new("Hot pink")
task.wait(1)
test.BrickColor = BrickColor.new("Dark Pink")
task.wait(1)
test.BrickColor = BrickColor.new("Earth yellow")
task.wait(1)

local NoTest = game.Workspace.PremiumArea.hehe
local ruh = 10

while ruh == 10 do
    NoTest.BrickColor = BrickColor.new("Dark green")
    task.wait(1)
    NoTest.BrickColor = BrickColor.new("Dark blue")
    task.wait(1)
    NoTest.BrickColor = BrickColor.new("Really red")
    task.wait(1)
    NoTest.BrickColor = BrickColor.new("Hot pink")
    task.wait(1)
    NoTest.BrickColor = BrickColor.new("Dark Pink")
    task.wait(1)
    NoTest.BrickColor = BrickColor.new("Earth yellow")
    task.wait(1)
    continue
end

end

`

#

idk wth is this

#

i dont even remember sumbitting this?

#

๐Ÿฅ€

#

but this is an example of how shi i was back then

#

when i applied for s1

fallen trout
#

@lapis silo

#

Atp its like you have a personal vendetta against me

#

apparently this is s1โ˜๐Ÿผโ˜๐Ÿผ

slow quarry
topaz summitBOT
#

studio** You are now Level 9! **studio

slow quarry
#

this

#

but i found it in my beginners game

#

so mabye i did

#

idk

#

some dude named eyeball ranked me

fallen trout
#

Jake said that the stuff above is low s1

slow quarry
#

nice

fallen trout
#

Me

#

He said my code is low s1

slow quarry
#

oof

#

i think my ranker was sleepy

#

or smthin

fallen trout
#

Nope

#

Eyeball is fair

#

U are prolly s1

slow quarry
#

yeah but am rusty

fallen trout
#

But Jake is wrong for saying its Low s1

#

Maybe Mid

slow quarry
#

i am doing modelling more

#

so like i dont rmember much scripts

slow quarry
fallen trout
slow quarry
#

epik

lapis silo
#

Pretty low man.

#

But I have no problem with you.

#

As a ranker, I'm unbiased.

fallen trout
lapis silo
fallen trout
#

Ok yeah i guess its prolly there in the ballpark of mid s1

hallow ore
#

@fallen trout u pinged me on it and I just looked at it

#

By what I know of the rankings at this moment Jakes assessment is correct but I would rank the Plane Mover to low-mid s1, monologue to low-mid s1, and combat service to mid s1

#

Your naming schemes are very inconsistent and it seems you use RunService WAY more than you really need

#

You use camelCase for cframeand use PascelCase for Size and Overlaps

fallen trout
hallow ore
#

You also abbreviate a lot which is bad practice

fallen trout
hallow ore
#

You want to name your variables exactly what it's being used for

#

So people kjnow esxactly what everything is used for

fallen trout
#

Isnt that what i do

#

if not could i see a case where i dont

fallen trout
#

so thats why I'm wondering, if thats low s1, whats my code

hallow ore
hallow ore
fallen trout
#

I get your point

fallen trout
#

lemme show u smth

hallow ore
#

From the last time I applied s1 should have a acceptable amount of knowledge with luau's syntax (loops, datatypes, functions, etc.)

#

If you had better examples you would be s2

#

You show a good understanding over the language and Roblox's API

#

But these are still in range with s1

hallow ore
#

There are issues with your code examples and better optimizations that you can do but I feel like you already know that

fallen trout
#

s1 code btw

#

The video can def be low s1 but not the code he showed

hallow ore
fallen trout
#

He said "Vouch S2?"

#

Man it makes me wonder

hallow ore
fallen trout
hallow ore
#

BRO

#

This was in 2023 ๐Ÿ˜ญ

fallen trout
#

oh damn

#

still

#

he said "vouch s2"

hallow ore
#

What are you even getting at ๐Ÿ˜ญ

fallen trout
hallow ore
#

Because there isn't for scripting

#

They're reworking it rn

#

But currently they are looking for people who are proficient in Roblox API for s2

fallen trout
#

Seems good

#

Gotta keep grinding

#

after all, it wouldnt be fun if s2 was easy to get would it

slow quarry
slow quarry
ashen wharf
slow quarry
#

it was low s1

#

but better than this

ashen wharf
#

kk

#

lol

slow quarry
#

vote this suggestion ;D

fallen trout
#

Man I want to apply for s2

#

but it would be a waste of rankers time

slow quarry
#

you should have aimed for s2 direct s1 is waste of time tbh :((

#

aiming for s2 > s1

fallen trout
#

true

slow quarry
#

you have already made systems so s2 isnt that hard for you to get

#

jake said your sumbission was low s1 tho they look like mid s1

#

ehh rankers have their opinions ig

fallen trout
#

Snicka gave me some really good advice tho

slow quarry
slow quarry
fallen trout
#

He/She said i have decent understanding of the API but i just need to practice more in roblox studio

#

The more i can make systems that show better understanding of API, the higher of a chance i have to get s2

slow quarry
fallen trout
#

I really still feel like with a bit of organisation and Comments, some of my code can definitely reach s2

slow quarry
#

yeah probably ig

vernal plank
#

high quality code but nothing complex enough for s2

#

but plenty of magic numbers in there

#

that's not good

fallen trout
#

magic numvers

fallen trout
#

*true

vernal plank
#

here's an example in pseudo code

vernal plank
#

you don't want that

#

while its clear this is for sprinting, in other situations it may not be so obvious

#

instead you want variables to explain what the number is for

#
local walkSpeed = 8
local sprintSpeed = 16

if button is held then
  humanoid.WalkSpeed = sprintSpeed
else
  humanoid.WalkSpeed = walkSpeed
end

fallen trout
#

I seeee

#

U wanna know something

#

I didnt do that because i thought people were gonna say its GPT code even if i made it all myself

vernal plank
fallen trout
#

also whats pseudocode

vernal plank
#

like if health is zero then kill player

fallen trout
#

ahh i see

slow quarry
#

bro on his arc to get s2

#

epik

fallen trout
#

yup

#

I have gotten positive contructive criticism so far

#

I have good code(with some design mistakes) but dont know enough of the API

fallen trout
#

@slow quarry my first code with OOP

local Names = {
    "Rover", "Jacob",
    "Liam", "Henry",
    "Joseph", "Max"
}

local Ages = {
    1,2,3,4,5,6,7,8,9,10,11,12
}

local breed = {"Labrador", "Poodle", "Rottweiler", "Cane Corso", "Tibetian Mastiff"}

local Specialities = {"Police Officer", "Vet", "EMT Medic", "Layer", "Actor"}

local randomName, RandomAge, RandomBreed = Names[math.random(#Names)], Ages[math.random(#Ages)], breed[math.random(#breed)]
local randomSpecialty = Specialities[math.random(#Specialities)]

local Dogs = {}
Dogs.__index = Dogs

--[[function Dogs:GetInfo()
    print(self.Name.." Is ".. self.Age.." Years Old, and is a ".. self.Breed)
end]]

function Dogs.new(Name, age, Breed)
    local dog = setmetatable({}, Dogs)
    dog.Name = Name
    dog.Breed = Breed
    dog.Age = age
    
    return dog
end

local SpecialDog = setmetatable(Dogs, { __index = Dogs})
SpecialDog.__index = SpecialDog

function SpecialDog:GetInfo()
    print(self.Name.." Is ".. self.Age.." Years Old, and is a ".. self.Breed..". His Speciality is: ".. self.Speciality)
end

function SpecialDog.new(Name, age, Breed, Speciality)
    local SpecialDog = setmetatable({}, Dogs)
    SpecialDog.Name = Name
    SpecialDog.Name = Name
    SpecialDog.Breed = Breed
    SpecialDog.Age = age
    SpecialDog.Speciality = Speciality

    return SpecialDog
end


local MyCustomDog = SpecialDog.new(randomName, RandomAge, RandomBreed, randomSpecialty)
MyCustomDog:GetInfo()
slow quarry
#

oh wait

#

this code is a random pet hatching system i think

#

i still know a bit

#

ngl comments in code makes it look more professional XD

fallen trout
#

Bro oop is so interesting

#

the idea is so smart

#

but i dont see myself using it in big projects

fallen trout
vernal plank
#

but take my advice because i made that mistake

#

don't chase OOP and metatable shit unless you're really sure its the best possible approach for a particular scenario

#

60% of my codebase was OOP and i realized that remaking it in other paradigms would make it look and perform better

fallen trout
hallow ore
hallow ore
fallen trout
#

Applied with 5 other scripts

#

Not that im against the rankers decision

#

but they said these werent even low s1

#

lemme send more

#

Its absolutely not s2

vernal plank
#

removing the guidelines made ranking a far more subjective matter

fallen trout
#

but you cant say its below low s1

vernal plank
fallen trout
#

Its just so annoying that i try so damn hard to make scripts and then apparently its Below s1

vernal plank
#

i must say

#

your scripts lack substance

#

they could do more

fallen trout
#

yup

#

wait

#

i updated the sprint i think

#

I plan on adding things like sliding, leaping, etc

#

Its not s2 in any way

#

but man its higher than low s1

#

Wasnt s1 being a beginner?

#

@faint cape Give me a sec lemme send them

vernal plank
#

ig something changed now

#

lol

faint cape
#

ok

fallen trout
#
vernal plank
#

you index replicated storage

#

you are supposed to use get service

faint cape
#

ok its definetely s1 but I can see y its not s2

vernal plank
#

but you actually did at the top

fallen trout
fallen trout
#

I was using Vscode for first time

#

so all that autocomplete confused me

vernal plank
#

and the combat animations folder should also be at the top but instead you wait for it every time the function is ran

#

all of these could be placed at the top

fallen trout
#

I see

vernal plank
#

same with this too probably

fallen trout
#

General beginner mistakes tho

vernal plank
#

and this

#

you can place the actual highlight at the top

#

and clone it every time from its variable

fallen trout
#

Oh alright

vernal plank
#

quite a few magic numbers as well

fallen trout
#

?

vernal plank
#

magic numbers

#

numbers that don't mean anything

#

like this

#

wtf am i supposed to understand from (5.2, 5.287, 6.8)

#

pretty random

vernal plank
#

you'd forget what those numbers are for even if they were actually very important

#

and possibly change them and break something

#

if you are collaborating with others they also might change them and break it

faint cape
vernal plank
#

very repeated code

#

make one EnemyAnimations variable

vernal plank
faint cape
#

do u have vid

vernal plank
#

overtime

vernal plank
#

and changes based on location

fallen trout
#

its a vector 3

vernal plank
#

a camera utilities system

#

and some anti cheat

vernal plank
#

why those numbers in particular

fallen trout
#

Ohhhh

vernal plank
faint cape
fallen trout
#

Cuz its a certain size

vernal plank
#

i used state machine for movement

faint cape
#

pretty sure you can use state machien for weather systems cant you

#

oh

vernal plank
#

because there is no specific state to speak of

fallen trout
# vernal plank no

tbh with how ranking is rn i dont see you getting s2 if you re-applied

vernal plank
#

weathers and daytimes are merged

#

so they're like

#

halfway night and halfway day

#

etc

faint cape
faint cape
vernal plank
#

maybe not

#

i think im quite capable of easily making a few s2 systems again

faint cape
#

so I think he can

vernal plank
#

i got it back through public ranking

fallen trout
faint cape
#

cuz ur mob mob

fallen trout
#

yk it was going pretty well when drastic was ranking me

#

he told me the flaws and everything and i got 4/7 points for s2

#

but in came pyro

vernal plank
#

pyro greenlit me for s3 once yousee

fallen trout
faint cape
#

pyro is good people rankers just have different rankings

#

ur lucky u didnt get Jake

vernal plank
fallen trout
#

Jake is amazing bro

vernal plank
#

but i knew i wouldn't

#

not yet

faint cape
#

if I apply for s2 and I get jake im closing my ticket

#

i've done a lot

#

;)

vernal plank
#

do you think you're s2

faint cape
#

oh no no no

#

not even close

vernal plank
#

tf even makes an s2 nowadays

faint cape
#

idfk

#

not me tho

vernal plank
#

let alone an s3

faint cape
#

not me

fallen trout
vernal plank
#

with big focus on security and performance

fallen trout
vernal plank
#

but all of these sound s2 to me

vernal plank
#

yeah

fallen trout
#

everything can be copied from a tut

faint cape
vernal plank
#

not really

fallen trout
#

and i made everything myself damnit

fallen trout
#

Apart from libs and packages

faint cape
#

not like u copying tutorials

vernal plank
#

every game has its own problems that arise from having to communicate between multiple systems

#

and you wont find a solution for those

faint cape
#

its fine bro ive been rejected from s2 too

#

that was long ago

#

I sent some real ass code

vernal plank
faint cape
#

probably 1/7

vernal plank
#

i sent some real ass code long ago

#

and i got s2 from it

#

back when it was easy

faint cape
vernal plank
#

so im glad i got my rank taken away

fallen trout
#

Getting s3 this day and date

#

is insane

faint cape
#

which is good

#

it should be challenging

#

I like a little fun

#

;)

#

except im prob never gonna apply

vernal plank
#

i'd say s2 is prestigious enough

#

it has a very wide range

vernal plank
faint cape
#

low s1 and high s1

#

have a GIGANTIC difference

fallen trout
#

letik and prism

vernal plank
#

just a few months ago all s1s were kinda bad

fallen trout
#

tbh personally

#

after seeing letiks past works

vernal plank
faint cape
#

there are all these pro s2's too

fallen trout
#

i dont think hes s2

fallen trout
faint cape
#

makes me feel like a s0

#

lmfao

fallen trout
#

Also doyt

#

and Kash

faint cape
#

y

fallen trout
#

Imo the worst s2 (still apparently better than me tho๐Ÿ˜…) is letik

faint cape
#
type ObjectPool = {
    __index: ObjectPool,
    _Generator: () -> Instance,
    _Managed: {[Instance]: boolean},
    _Pool: {Instance},

    Objects: number,
    Minimum: number,
    Maximum: number,

    New: (Generator: () -> Instance, Minimum: number, Maximum: number) -> ObjectPool,
    Generate: (self: ObjectPool) -> Instance,
    Borrow: (self: ObjectPool) -> (Instance, () -> ()),
    Release: (self: ObjectPool, Object: Instance) -> ()
}

local ObjectPool = {} :: ObjectPool
ObjectPool.__index = ObjectPool

function ObjectPool.New(Generator: () -> Instance, Minimum:number, Maximum:number):ObjectPool
    assert(Minimum and Maximum, "Please provide a minimum and a maximum value")
    assert(Minimum <= Maximum, "ObjectPool minimum cannot be greater than its maximum")

    local self = setmetatable({
        _Generator = Generator,
        _Managed = {},
        _Pool = {},

        Objects = 0,
        Minimum = Minimum,
        Maximum = Maximum,
    }, ObjectPool) :: ObjectPool

    for _ = 1, Minimum do
        self:Generate()
    end

    return self
end

function ObjectPool:Generate(): Instance
    assert(self.Objects < self.Maximum, "Attempt to generate new object for full ObjectPool")

    local Object = self._Generator()
    table.insert(self._Pool, Object)
    self._Managed[Object] = true
    self.Objects += 1

    return Object
end

function ObjectPool:Borrow(): (Instance, (self: ObjectPool) ->())
    if #self._Pool <= 0 then
        self:Generate()
    end
    local Object = table.remove(self._Pool, 1)::Instance

    return Object, function()
        self:Release(Object)
    end
end

function ObjectPool:Release(Object:BasePart): ()
    assert(self._Managed[Object], 
        "Attempt to return object to ObjectPool that does not manage it")
    Object.Position = Vector3.new(math.huge,0,0)

    table.insert(self._Pool, Object)
end

return ObjectPool

Some slop code cuz I have to embrass myself a little too

#

wont share my octree tho

#

its extra slop

vernal plank
#

not much can be said about it i suppose

#

its clean and it probably works

faint cape
#

its a object pool you cant say much about object pool

vernal plank
#

true true

#

@fallen trout take a look at this for example

#

when i do this

#

do you understand anything

faint cape
#

yes

fallen trout
#

yes

vernal plank
#

ok

#

explain

fallen trout
#

you multipy pointA's position by a new vector(1,0,1)

#

which is 1 on x, 0 on y, 1 on z

vernal plank
#

no shit

#

why do i do that

fallen trout
#

But i get your point

faint cape
vernal plank
#

why do i multiply y by 0

fallen trout
#

usually people wont know why you do it

faint cape
#

to remove the altitude

fallen trout
faint cape
#

thingy

vernal plank
#

some would understand

#

some wouldn't

faint cape
#

I don't

vernal plank
#

and in other examples nobody would understand

#

this is a magic number

#

its a number but it doesn't explain anything

faint cape
#

oh

vernal plank
#

now if i do this

#

it becomes much more obvious

fallen trout
#

yh

vernal plank
#

i flatten the points so i could isolate them on a plane

#

by using a flatten vector

#

with no height

faint cape
vernal plank
#

yeah

#

you were right

faint cape
#

"remove the altitude thingy"

vernal plank
#

my point is

#

some wouldn't understand why

#

and thats not good

faint cape
#

DO IT

vernal plank
#

never made an octree myself lol

faint cape
#

oh

#

ima delete it then

#

cant show slop code

vernal plank
faint cape
#

hm

vernal plank
#

make your code decently modular for s2

#

use the best applicable approach when doing something

faint cape
#

its a complete module

vernal plank
#

so only use OOP when you need to

#

functional programming

#

DOD

#

etc

#

and each work particularly well for different cases

faint cape
#

my server script only loads the module and calls the module.Init if it exists everything else is module

vernal plank
#

so a loader approach

#

nice

#

i also do that

faint cape
#

idk y I used oop in octree tho

#

I felt like it

vernal plank
#

if you're gonna make your physics system for example (which i dont even know how to do lol)

#

you want maximum performance

#

a DOD approach would be just what you need for that

faint cape
#

idk what DOD is

vernal plank
#

data oriented design

#

look it up

faint cape
#

ill look into it

faint cape
vernal plank
#

learn the different programming paradigms

vernal plank
#

but they're nothing special

faint cape
#

my module loader is only like

function ModuleLoader:Load(Modules:{ModuleScript})
    if not IsServer() and not script:GetAttribute("ServerLoaded") then
        script:GetAttributeChangedSignal("ServerLoaded"):Wait()
    end
    
    for _, Module in Modules do
        require(Module)
        if Module.Init then
            Module.Init()
        end
    end
    
    if IsServer() then
        script:SetAttribute("ServerLoaded", true)
    end
end
#

onyl 1 function

#

and thats about it

#

it loads server firstt

#

then loads client

vernal plank
#

@faint cape watch this

#

amazing video on performance and optimization

faint cape
#

1 hour ๐Ÿ˜จ๐Ÿ˜จ๐Ÿ˜จ๐Ÿ˜จ

#

will watch tho

vernal plank
#

i can barely watch a 1 hour video too but i gladly watched this

faint cape
#

so many ads

vernal plank
#

use ad blocker

#

brave's adblocker survived the onslaught

faint cape
#

if the video is that good then id rather let the guy get ad revenue

vernal plank
#

when you can understand those concepts and talk about them to your rankers

#

make comments in your script explaining your approach

#

they'll know they're dealing with someone that deserves that rank

#

but obviously code speaks louder than words

faint cape
#

"they'll know what they're dealing with" ๐Ÿบ

vernal plank
faint cape
#

yea

#

well I can't watch it rn so ill probably do tmrw

#

i dont wanna watch the video on different days ill probably forget so ill watch all of it tmrw

faint cape
vernal plank
#

np

fallen trout
#

I had the knowledge to go to low s2 but was told even if i have s4 knowledge, if i provide an s1 script i am s1

fallen trout
#

Ok so now i challenge myself to make 4 systems that are 7/7 in one month. I already have the first one planned

faint cape
faint cape
fallen trout
#

i said one month

faint cape
fallen trout
slow quarry
#

why is this thread active ๐Ÿ˜ญ

#

now since ya all are here

#

upvote my suggestion ;D

ashen wharf
#

xD

#

5 days since last msg

slow quarry
#

yep

slow quarry
fallen trout
#

fr

queen abyss
#

D

#

Dd

#

D

#

d

#

D