#code-discussion

1 messages ยท Page 219 of 1

tame patio
#

because shorter is better for me to read lol

lean ocean
#

๐Ÿ’†โ€โ™‚๏ธ

#

alright

tame patio
#

yeah im just saying hypothetically again im just trying to learn whats possible

#

its kinda similar to python icl

lean ocean
#

that must be rough to work with

#

๐Ÿ˜ข

lusty barn
tame patio
#

bro why does lua have an option to explain your own code to you

lean ocean
#

๐Ÿคทโ€โ™‚๏ธ

tame patio
#

use chat gpt to organize ur script ngl

lusty barn
lean ocean
#

insane

terse wigeon
#

Could someone at least explain the concept please? Im stuck

lean ocean
#

I just realized ur that guy I dmed about my new game

#

shit flopped ngl

lusty barn
#

modulescripts

lean ocean
#

I was being hopeful that it would reach home recs eventually but I lost hope

tame patio
lusty barn
#

dude ur a fkn npc wtf

#

xd in '25

lusty barn
lean ocean
#

nah it did but like

lusty barn
#

first of all

tame patio
lean ocean
#

it was like 500 and then it just fell

lusty barn
#

crazy how your code is already organized badly enough

lean ocean
#

500 in a day

lusty barn
#

second

#

ai organization is shit

#

ai coding is shit in general

#

ai is shit

#

overrated ass tech

tame patio
lusty barn
#

bubble is popping soon

#

ur cooked too

#

frosty spit it out

tame patio
#

--//====================================================================
--// โšก Zenitsu - Thunderclap Skill
--//====================================================================

-- [[ Services & Modules ]]
local Replicated = game:GetService("ReplicatedStorage")
local RunService = game:GetService("RunService")
local ServerStorage = game:GetService("ServerStorage")
local TweenService = game:GetService("TweenService")

local PlayerStates = require(Replicated.Assets.Modules.Misc.PlayerStates)
local CooldownManager = require(Replicated.Assets.Modules.Misc.CooldownManager)
local AnimationsManager = require(Replicated.Assets.Modules.UtilsModule.AnimationManager)
local Ragdoll = require(Replicated.Assets.Modules.Misc.RagdollManager)
local Utility = require(Replicated.Assets.Modules.Misc.Utility)
local DamageMod = require(ServerStorage.Modules.CombatUtils.Damage)
local Hitbox = require(ServerStorage.Modules.CombatUtils.Hitbox)

-- [[ Remotes ]]
local MoveFXRemote = Replicated.Assets.Unreliable.MoveFX

-- [[ Skill Table ]]
local Skill = {}

--//====================================================================
--// ๐ŸŒ€ MAIN FUNCTION
--//====================================================================
function Skill.Activate(Player, Data)
--// Setup
local Character = Player.Character
local RootPart = Character:FindFirstChild("HumanoidRootPart")
local Humanoid = Character:FindFirstChildOfClass("Humanoid")
if not (Character and RootPart and Humanoid) then return end

local oldCF = RootPart.CFrame
local oldLV = RootPart.CFrame.LookVector

--// Cooldown checks
if CooldownManager.CheckGlobalSkillCooldown({ProfileIndex = Character})
or CooldownManager.CheckCooldown({ProfileIndex = Character, CooldownName = script.Name}) then
    return
end
CooldownManager.AddGlobalSkillCooldown({ProfileIndex = Character, Lifetime = 0.7})
lean ocean
#

All I know is the stats were better than last time I sponsored and last time it got more home recs than now

#

which is wild

#

I don't get it

lean ocean
#

I can check

#

give me sdc

lusty barn
#

MAIN FUNCTION ๐Ÿ’”

terse wigeon
# lusty barn modulescripts

Yeah but how?
Like if I wanted to make 30 pets, would I be supposed to make 30 objects of pets and insert them into an module.index table?

lean ocean
#

sec

tame patio
lusty barn
#

im a you hater

tame patio
#

ai hater

lusty barn
tame patio
#

welp back to learning

lusty barn
#

omg im beggingn

#

FUCK

terse wigeon
vague phoenix
#

does anyone know what this is? apparently i need to understand it to code a working circuit

lean ocean
#

qptr benchmark reached like 1.56 and 50th percentile was 1.54

tame patio
#

for scripts

terse wigeon
#

Oh, that's useful thanks

tame patio
#

idk when emojis are ever a good thing to use for organization it looks so bad

lean ocean
#

I think one of the thumbnails had like 2.5 qptr

#

Around there

iron kraken
lean ocean
#

which is almost 90th percentile

#

I mean it's fine I'm 1/2 for successful games

#

During the end of the ads

#

also I still get like 2 ccu but that's nothing

vague phoenix
lean ocean
#

nah the stats are terrible rn

#

I assume it's cause

#

It averages 1 ccu

#

but they used to be decent

#

well yea maybe something still happens cause it's not entirely dead

#

look that spike u see on the left

#

was the last time I sponsored

#

and it got way more

#

and on the right is home recs this time

#

something has to happen cause no way last time it got like 100x the home recs with way worse stats

#

algorithm is weird

#

my friends obby game also started with like 2 ccu and went up to 600

#

in the span of a couple of weeks

iron kraken
#

and then add the children fo each node to the queue

#

and then keep going until the queue is empty

warm talon
#
local Players           = game:GetService("Players")
local UserInputService  = game:GetService("UserInputService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local TweenService      = game:GetService("TweenService")
local Debris            = game:GetService("Debris")

local player = Players.LocalPlayer
local TEMPLATE = ReplicatedStorage:WaitForChild("tigerrush") 

UserInputService.InputBegan:Connect(function(input, gpe)
    if gpe or input.KeyCode ~= Enum.KeyCode.Z then return end

    local char = player.Character or player.CharacterAdded:Wait()
    local hrp = char:WaitForChild("HumanoidRootPart")

    
    local vfx = TEMPLATE:Clone()
    vfx.Anchored = false
    vfx.Parent = hrp                      
    vfx.CFrame = hrp.CFrame               

    for _, obj in ipairs(vfx:GetDescendants()) do
        
        
        if obj:IsA("ParticleEmitter") then
            obj.Enabled = false
            obj:Clear()
            obj:Emit(obj.Rate)

        
        elseif obj:IsA("Beam") then
            obj.Enabled = true

            local w0 = obj.Width0
            local w1 = obj.Width1

            task.wait() 

            local tween = TweenService:Create(
                obj,
                TweenInfo.new(0.25, Enum.EasingStyle.Linear),
                {Width0 = 0, Width1 = 0}
            )
            tween:Play()
        end
    end

    
    Debris:AddItem(vfx, 1)
end)

how do i make this emit on 3 parts instead of 1

dapper junco
#

Lookin for a scripter that would be willing to make a game from scratch, naruto cc roleplay game.

teal lintel
warm talon
#

its my friends code

teal lintel
#

does your friend have some kind of ocd?

vague phoenix
#

green part is the starting point, yellow part is the lamp and the thin parts are the wires

peak solstice
#

who wanna participate in my project and my friends dms

iron kraken
vague phoenix
iron kraken
#

o ok I_I

wraith zinc
#

Anybody know why some combat systems are smooth but some are jagged and slow

rigid tundra
#

or remote events are too slow

gentle ember
#

looking for someone to make a game with!

wise frigate
gentle ember
#

(brainrot types of game.. (im not brainrot just saying)

wise frigate
gentle ember
#

maybe or maybe not

#

you got a idea?

wise frigate
#

Dm

iron kraken
#

skibidi brainrot garden tower defense simulator

ruby jackal
#

csn anyone be a nice guy and help me script a game i created and my scripter frend told me that it wont take a long time to script to can anyone help btw the game is trash i started a week ago so i dont think that it will be hard to script

#

dm me

summer matrix
#

yo

ruby jackal
#

can anyone script my game for a 35 percent share?

coarse parcel
#

Top best and useful things you can use in your scripts: (dont use them)

1- _G: Its a modulescript from the old old times

2- _Version: Version of the lua interpreter (now it says Luau but before it had the number of version, like Lua 5.2, etc)

#

also the number 3:

why use .Position when you can use the old .P?

#

and finally, the :Wait()

:Wait() its worse than :wait() because :Wait() is deprecated and :wait() no but both are no longer used in modern scripts

inland agate
#

Lebron gotim

dapper agate
#

guys any tip on where to learn scripting?

#

i only know how to do

print("hello")

iron kraken
compact fossil
#

any tips on remembering what things do?

balmy zenith
#

tip: you dont remember

#

you google

fair chasm
#

Pretty much

terse wigeon
cobalt crest
#
local function SpawnBloodPiece(targetPart, strength)
    local nb = bloodPrefab:Clone()

    local offsetDist = math.random() * 0.2 + 0.1
    local randomOffset = Vector3.new(
        math.random(-100, 100) / 100,
        math.random(-100, 100) / 100,
        math.random(-100, 100) / 100
    ).Unit * offsetDist

    local randomRot = CFrame.Angles(
        math.random() * math.pi,
        math.random() * math.pi,
        math.random() * math.pi
    )

    nb.CFrame = targetPart.CFrame * CFrame.new(randomOffset) * randomRot
    nb.Parent = workspace

    local bv = Instance.new("BodyVelocity")
    bv.MaxForce = Vector3.new(1e4, 1e4, 1e4)
    bv.Velocity = Vector3.new(
        math.random(-6, 6),
        math.random(4, 10),
        math.random(-6, 6)
    ) * strength
    bv.Parent = nb

    game.Debris:AddItem(bv, 0.25)
    game.Debris:AddItem(nb, math.random(89, 152) / 10)
end


local function Blood(char, damage)
    if not char or not char.PrimaryPart then return end
    if not damage then return end

    local count = 1 + math.floor((damage - 1) / 4)
    if count < 1 then count = 1 end

    local targetPart = char.PrimaryPart
    for i = 1, count do
        SpawnBloodPiece(targetPart, damage * (math.random(3,8) / 100))
    end
end

made this goofy ass blood system (boi so retro!)

candid isle
#

Howโ€™s it going

kind seal
#

is this good code style wise?

balmy zenith
#

wtf

#

also can do type? instead of type | nil

balmy zenith
#

whats this attrbiute thing anyway

#

seems cursed

kind seal
#

oh no i have to do that or roblox screams at me

kind seal
balmy zenith
#

oh lord

kind seal
#

indeed

balmy zenith
#

why do people recreate oop

kind seal
#

because i can

#

and its good experience

#

ive learned alot about types

balmy zenith
kind seal
#

this builder module:

--!strict
--!optimize 2

-- stylua: ignore start

local packages  =  script.Parent
local output    =  require(packages.Output)

export type Builder<M>  =  M & Buildable
export type Buildable   =  {
    build: (any) -> any,
}

-- stylua: ignore end

local exports = {}

exports.new = function<M>(name: string, methods: M & Buildable): Builder<M>
    if typeof(name) ~= 'string' then
        local message = 'attempted to create a builder an invalid name.'
        output.error('Builder.new', message, 3)
    end
    if typeof(methods) ~= 'table' then
        local message: string = 'attempted to create a builder named %q with invalid methods.'
        output.error('Builder.new', string.format(message :: any, name), 3)
    end
    if typeof(methods.build) ~= 'function' then
        local message = 'attempted to create a builder named %q with an invalid build method.'
        output.error('Builder.new', string.format(message :: any, name), 3)
    end

    for index, value in pairs(methods) do
        if string.sub(tostring(index), 1, 1) == '_' then continue end
        if typeof(value) ~= 'function' then
            local message = 'attempted to create a builder named %q with an invalid method %q.'
            output.error('Builder.new', string.format(message :: any, name, tostring(index)), 3)
        end
    end

    methods = table.clone(methods) :: M & Buildable
    return methods
end

return exports

took so long to get the autocompletion right

balmy zenith
#

pairs..

kind seal
#

ye

#

do i not need it?

balmy zenith
#

why

#

jusf use gen iter

kind seal
#

gimme an example

#

like next, methods, 1?

#

ive never used it before

balmy zenith
kind seal
balmy zenith
kind seal
#

aight

kind seal
#

for index, value in methods do

balmy zenith
#

ts has insane overhead

kind seal
#

wtff is overheadd

#

rahhhhh

balmy zenith
kind seal
balmy zenith
kind seal
#

i just dont know anything

balmy zenith
kind seal
#

no selene

balmy zenith
balmy zenith
kind seal
kind seal
balmy zenith
#

you should use new type solver

#

its better in general

kind seal
#

roblox studio says it aswell

balmy zenith
#

worse in some cases, but yk

balmy zenith
#

you can also just cast it to never

kind seal
#

lovely

#

methods :: {}

balmy zenith
#

its cuz

#

luau dont got generic constraints

#

and M, could be a non table

kind seal
#

thats a bit stupid

#
if typeof(methods) ~= 'table' then
    local message: string = 'attempted to create a builder named %q with invalid methods.'
    output.error('Builder.new', string.format(message :: any, name), 3)
end
balmy zenith
#

it probably doesnt know it returns

#

cuz you are using a redirected error..

#

if you returned or use error, itd probably know

kind seal
#

returning it causes an error idk what

#

and output.error uses error

balmy zenith
#

does output.error actually error

kind seal
# balmy zenith does output.error actually error
exports.error = function(thread: string, message: string, level: number?): never
    local executor, line, fn = debug.info(level or 2, 'sln')
    return error(string.format(exports.ERROR_FORMAT :: any, thread, executor, line, fn or 'unknown', message), 0)
end
balmy zenith
#

why tf you returning an error

kind seal
#

cuz

#

i can

balmy zenith
#

it wont even return

kind seal
#

yep

balmy zenith
balmy zenith
kind seal
#

which is what i want

balmy zenith
kind seal
#

hm?

balmy zenith
#

<K, V>

kind seal
#

oh

#

well i think its fine

haughty trail
#

if u have to type cast it means your doing something wrong in most cases

#

exceptions is when u have to hack luau type checker cuz its disgustingly bad

balmy zenith
#

ye

#

cast is wrong unless its type checker messing up

blazing leaf
#

what is type and self in modules bruh

balmy zenith
#

type?

#

type is to define a type

#

self is the table calling function

blazing leaf
#

can u tell simply and elaborate pl

balmy zenith
#

local Table = {}
function Table.doThing(self)
print(self == Table)
end
Table:doThing() -- true

blazing leaf
#

no in modules

#

like i made a module etf

balmy zenith
balmy zenith
#

its the same concept

blazing leaf
#

can u recommend any video or docs?

balmy zenith
#

you shouldnt restrict this concept to modules

balmy zenith
blazing leaf
#

so type basically is for OOP?

balmy zenith
balmy zenith
#

string boolean number etc

blazing leaf
#

OHH

#

and self?

haughty trail
distant hamlet
#

self promo in code help is wild

blazing leaf
#

lol

distant hamlet
#

wait holdup

#

his writing is fire??

haughty trail
terse wigeon
#

java doesnt even allow u not to use it

balmy zenith
haughty trail
#

the answer is in this writing work

#

or blog or whatever call it what u want i guess

terse wigeon
#

Im not trying to prove him wrong

balmy zenith
#

ok

balmy zenith
haughty trail
#

dod

#

or just fp

balmy zenith
#

which is?

#

fp ๐Ÿ’€

haughty trail
#

data oriented design

#

functional programming

balmy zenith
#

ik that

#

could you show example of dod

#

it isnt really a paradigm soo

haughty trail
balmy zenith
#

like

#

Func(data)?

haughty trail
#

you could ask ai or just search it up

#
#define ENTITY_COUNT 1000

typedef struct Position {
  float x,y; 
} Position ;

void move(Position *pos, int count, float move_x, float move_y) {
  for (int i = 0; i < count; ++i) {
    pos[i].x += move_x;
    pos[i].y += move_y;
  }
}

void main(void) {
 Position *pos = malloc(sizeof(Position) * ENTITY_COUNT);
 move(pos, ENTITY_COUNT, 10.f, 10.f);
 free(pos);
 return 0;
}
#

simple example might just be smthl ike this

balmy zenith
#

yeah so
Func(data)

#

which imo is less convenient than objects/encapsulation

#

id use it for simple data structures tho

#

or like performance critical

haughty trail
#

easy to debug, easy to read, easy to implement, hell more efficient

#

no inheretance bullshit

balmy zenith
#

elaborate on the first 3?

quick narwhal
#

guys i need help the script that displays gamepasses on the stands it stoped working i don't know why

haughty trail
#

Easy to debug because: data transformations happen in clear predictable ways on data structures, so basically the transparency of it means bugs tend to be localized and easier to trace because there aint no hidden state scattered across multiple encapsulated objects

#

there is no deep inheritance hierarchies or virtual dispatch

quick narwhal
#

hello can anyone help

kind seal
haughty trail
#

you can easily just follow the function calls and see exactly which data is being manipulated at which step

quick narwhal
kind seal
haughty trail
#

easy to read should be self explanatory tho if u really want i can elaborate on that

quick narwhal
balmy zenith
kind seal
#

i dont really see the point of encapsulation

haughty trail
# balmy zenith cant you also do that with encapsulation

This is a clip from the following video, which I believe is a re-upload of a Twitch livestream made in 2015:
https://www.youtube.com/watch?v=q4nUK0EBzmI

in which Shawn McGrath, a video game programmer who has worked on many games including the following:
Fortnite
N++
Dungeon Punks
Sound Shapes
Proteus
They Bleed Pixels

demonstrates and rants...

โ–ถ Play video
#

watch dis guy

balmy zenith
#

k

kind seal
#

did i start this discussion

haughty trail
#

this video will explain it way better and faster

balmy zenith
haughty trail
#

cuz its a real world example rather than some discord guy talking

kind seal
balmy zenith
kind seal
balmy zenith
#

yeah

#

thats encapsulation

kind seal
#

ohh i thought encapsulation was like private and protected attributes / methods

haughty trail
#

so you are kinda right

terse wigeon
#

it is making variables in private
and then making those method inside public to modify them

kind seal
#

you dont have to have a public method to modify / access

haughty trail
#

encapsulation would mean that the Bite method is part of dog object and the internal workings of how the dog bites is hidden behind dis method preventing u from direct external interaction with the data

kind seal
#

the what what

haughty trail
#

encapsulation is the reason u have the ugly ass getters and setters

distant hamlet
#

except the data isnt contained

haughty trail
terse wigeon
haughty trail
#

but its different from the traditional OOP encapsulation

distant hamlet
#

what about event driven

haughty trail
#

event driven programming also involves encapsulation

distant hamlet
#

you think pure dod is possible

haughty trail
#

its rather a spectrum than absolute state

#

i dont believe in any of the 'pure oop' 'pure soa' 'pure dod' stuff

#

it is possible but who really cares

distant hamlet
#

neither do i

haughty trail
#

what i mean by that is in the end it will have to coexist with other design principles

#

cuz it has to meet broader software requirements

#

which sucks but it is what it is

#

either way i hate oop

#

fuck oop

balmy zenith
# haughty trail https://youtu.be/C90H3ZueZMM

what i got from this is the code hes reading is just hsrd af to trace, cuz its using a shit load of classing and inheritence for stupid bullshit, and i agree

but i dont do oop like this soo

haughty trail
# haughty trail https://daolgierd.github.io/

Remember encapsulation? That thing where you can change implementation without affecting other code? Yeah, that was a lie. In practice it means โ€œI hid > the data so now you have no idea whatโ€™s actually happening or whoโ€™s fucking with it.โ€

#

thats my take on encapsulation

haughty trail
balmy zenith
#

whats wrong with hiding data btw

haughty trail
#

now imagine the hell you have to go through in huge code bases

balmy zenith
#

you should have a few classes per sustek

#

not 20

haughty trail
#

alr guys i gtg

#

have fun and shit cya

terse wigeon
#

guys whats the point of making scopes on datastores?
like
local playerInventoryDataStore = DataStoreService:GetDataStore("PlayerInventory")
local playerCoins = DataStoreService:GetDataStore("PlayerInventory", "PlayerCoins")

balmy zenith
#

its a scope

terse wigeon
#

brawldev said its not organized when not using it but I cant see it

distant hamlet
#

honestly my main irk with oop is the abstraction

balmy zenith
balmy zenith
#

gotta balance it to not overabstract tho

terse wigeon
distant hamlet
#

premature abstraction is as evil as premature optimization

balmy zenith
balmy zenith
balmy zenith
#

its separate

#

basically its categories

#

i think it prefixed the scope name into key

#

so it takes up key space

terse wigeon
#

sorry I may be slow but I dont get it

#

yeah categories but whats the use of it

balmy zenith
#

just categories or scopes

#

you can do same by using many datastores

#

but you need to getasync each datastore so thats not ideal

#

so if you can fit data into 1 store, do it

terse wigeon
#

ohh

terse wigeon
distant hamlet
#

the duality of man

balmy zenith
terse wigeon
balmy zenith
#

yes

#

if you store data in 1 datastore

#

so dont go overboard with using too many datastores is the moral

terse wigeon
#

I get it now, thank you dude ๐Ÿ‘

chilly shoal
#

hi

haughty trail
#

its still oop rant

slender cairn
haughty trail
#

scroll up

#

you will find out

slender cairn
#

kinda lazy to read since am outside can you tell why tho in simple terms

#

because rn am taught oop helps with easier code when managed by diff teams ( could be done via abstraction )

#

else it just simplifies your code than having structural programming which is redundant for some case

haughty trail
slender cairn
haughty trail
#

you wanted simple terms

slender cairn
#

no i mean these points like don't align

#

some only

haughty trail
#

๐Ÿ˜”

#

i elaborated on that points

slender cairn
#

o ๐Ÿ˜ญ

haughty trail
#

read when your back at home

#

or dont idc tbh

slender cairn
#

well it's a diff preferences but imo i do like how oop simplifies code for future cases

haughty trail
#

nice jk

slender cairn
#

you can make it as generic as possible too, with or without oop but for me i had used the same class

#

for projects i made

haughty trail
#

you dont need oop to create modular code

slender cairn
#

i know

#

i just like to code in oop tho

haughty trail
#

okay

slender cairn
#

thx for ur time ๐Ÿ˜Ž

haughty trail
#

no problem

distant hamlet
hazy reef
haughty trail
shell ravine
#

hey guys whaddya think of this :3

thorny osprey
knotty glacier
#

how can i create a XP leaderstats for every team And they onlly get xp for that team when they are on that team like the prison games

midnight oar
#

looking for a reliable scripter

#

for a passion project

#

fun and smol project

terse wigeon
obsidian geyser
#

Anyone here who can help me out with scripting or tutor me

#

il acc pay robux for it

terse wigeon
#

what do u need help with?

obsidian geyser
#

Like just teach me basics

#

Or send good videos

#

and how you learned how to code

terse wigeon
#

watch brawl dev

obsidian geyser
#

Brawl dev

merry marlin
timber maple
#

yo guys pls ans my ques

#

do yall know any scripter slaves?

#

I need some for my game
there has to be some people willing to slave if we got a pretty good dev team

still slate
#

@obsidian geyser dms

rain smelt
#

guys, is this like indicator, in tycoon games kinda like path indicator, is it vfx or UI?

dusky rapids
#

How do bulk download player data? like before a game update I would like to download player data so if something goes wrong I can rollback. and if i download player data how would i use it to rollback?

ebon holly
#
local inputmodule = {}
inputmodule.__index = inputmodule

local uis = game:GetService("UserInputService")

function inputmodule.CreateAction(input,cooldown)
    
    local inputfunc = {}
    inputfunc.Input = input
    inputfunc.Cooldown = cooldown
    inputfunc.Disconnect = false
    setmetatable(inputfunc,inputmodule)
    
    return inputfunc
    
end

function inputmodule:GetEvent()
    
    local instance = Instance.new("BindableEvent")
    local event = instance.Event
    local connection
    local COOLDOWN = 0
    if self.Cooldown then
        COOLDOWN = self.Cooldown
    end
        
        local lastuse = os.clock()
    
        connection = uis.InputBegan:Connect(function(input,gpe)
            
            if self.Disconnect then
                connection:Disconnect()
                connection = nil
                instance:Destroy()
                self.Disconnect = false
                return
            end
             
            if gpe then return end
            if self.Input then
                if os.clock() - lastuse >= COOLDOWN then
                    if input.KeyCode == self.Input then
                        lastuse = os.clock()
                        instance:Fire()
                    end
                end
            end
        end)
    
    return event
end

function inputmodule:Disconnect()
    if not self.Disconnect then
        self.Disconnect = true
    end
end

return inputmodule

is this good or bad i dont wanna repeat connections every script

ebon holly
#

but in this case its probably in the head

obsidian hedge
ebon holly
haughty trail
#

fake constant declaration in function scope

#

is also crazy

chilly canyon
#

i will poo your code

kind seal
#

should i make a lamdba module that uses loadstring to make lambda statements?

kind seal
balmy zenith
#

cuz why tf make a lambda

kind seal
balmy zenith
#

function(x, y, z) print(x, y, z) end
is not that longer than
(x, y, z) => print(x, y, z)

ebon holly
haughty trail
ebon holly
haughty trail
#

ok

ebon holly
# haughty trail about your dumb shit code mate
local inputmodule = {}
inputmodule.__index = inputmodule

local uis = game:GetService("UserInputService")

function inputmodule.CreateAction(input,cooldown)
    
    local bindable = Instance.new("BindableEvent")
    local inputfunc = {}
    inputfunc.Input = input
    inputfunc.Instance = bindable
    inputfunc.OnAction = bindable.Event
    inputfunc.Cooldown = cooldown or 0
    inputfunc.Disconnect = false
    setmetatable(inputfunc,inputmodule)
    
    inputfunc:Connect()
    
    return inputfunc
    
end

function inputmodule:Connect()
    local connection
        
        local lastuse = os.clock()
    
        connection = uis.InputBegan:Connect(function(input,gpe)
            
            if self.Disconnect then
                connection:Disconnect()
                connection = nil
                self.Disconnect = false
                return
            end
             
            if gpe then return end
            if self.Input then
                if os.clock() - lastuse >= self.Cooldown then
                    if input.KeyCode == self.Input then
                        lastuse = os.clock()
                        self.Instance:Fire()
                    end
                end
            end
        end)
end

function inputmodule:Disconnect()
    if not self.Disconnect then
        self.Disconnect = true
    end
end

return inputmodule
#

on the other script i just did

local action = inputmodule.CreateAction(Enum.KeyCode.One,cooldownvalue.Value)

local connection = action.OnAction:Connect(function()
    print("works")
end)
#

and it works

sand furnace
ebon holly
haughty trail
#

maybe

ebon holly
#

yayy

tawdry ice
fringe barn
safe wind
#

thxx

civic garnet
# ebon holly ```lua local inputmodule = {} inputmodule.__index = inputmodule local uis = gam...
local InputModule = {}
InputModule.__index = InputModule

local UserInputService = game:GetService("UserInputService")

function InputModule.new(input, cooldown)
  local self = setmetatable(InputModule, {})
  
  self.Input = input
  self.Instance = Instance.new("BindableEvent")
  self.OnAction = self.Instance.Event
  self.Cooldown = cooldown or 0
  self.Connection = nil
  self.Connected = true
  return self
end

function InputModule.Connect(self)
  self.Connected = true
  local lastUse = 0

  self.Connection = UserInputService.InputBegan:Connect(function(input, gameProcessed)
    if gameProcessed then return end

    if os.clock() - lastUse >= self.Cooldown then
      if input.KeyCode == self.Input then
          lastUse = oc.clock()
          self.Instance:Fire()
      end
    end
  end)
end

function InputModule.Disconnect(self)
  if self.Connected == false then return end
  
  self.Connection:Disconnect()
  self.Connected = false
end```
echo linden
safe wind
echo linden
safe wind
echo linden
fringe barn
# shell ravine

Pretty cool but i would quit typing like that if i were you

fringe barn
safe wind
limpid spear
#

If there is movement in the animation, can I stop my character where the animation stopped or is it not possible?

shell ravine
shell ravine
echo linden
shell ravine
echo linden
midnight geode
fringe barn
safe wind
fringe barn
#

Gosh darn it

#

Are u willing to be cool and break the rules just 1 time

magic yacht
civic garnet
#

its the same as ```lua
local part = workspace.Part

part.FindFirstChild(part, "MyPart") -- you have to pass in the part directly to itself
part:FindFirstChild("MyPart") -- you dont have to pass the part into the parameter, : automatically does this for you```

magic yacht
#

oh damn

#

thanks

real mantle
#

Iโ€™m working on a menu system where the character doesnโ€™t load until you interact with the menu. The idea is that initially, your character isnโ€™t loaded, and when you click the menu, it triggers the character to load. after clicking the menu, it automatically disappears. Iโ€™m stuck on how to prevent the character from loading until the menu is clicked, as when the character isnโ€™t loaded, my gui doesnโ€™t show up. any help or suggestions would be greatly appreciated

static coral
raw patio
soft thunder
#

guys why when i fire this script my character is kissing instead of neck biting its facing player face to face

echo jolt
soft thunder
#

can somebody help?

soft thunder
#

i'm trying to make a neck bite ability.

soft thunder
#

bro can yall help?

soft thunder
#

like why yall trolling and shit

#

im actually trying to learn.

restive terrace
#

k WHATS THE ISSUE

#

ILL HELP

soft thunder
#

bruh

soft thunder
restive terrace
#

Make it so he teleports to their lookvector -

polar scaffold
#

when applying for the scripter role or whatever, do i gotta make a whole bunch of comments or only for the most important parts?

abstract eagle
#

hi

#

anyone scriptsa?

#

needed small help

molten girder
dapper agate
#

hey

rain hound
#

any devs here use this feature? does it offer any benefit at all?

slim junco
#

I have a map, but I've tried everything and it's only playable on the computer.

#

Someone help me.

median tree
merry marlin
#

talm some "kissing"

merry marlin
# soft thunder ??

he said make it so it tps it to the negative lookvector of the thing ur tryna bite basically

merry marlin
#

ion know your code

#

send me it

#

like the main part

#

that does the stuff no extra

kindred heart
#

i dont see why not

rain hound
rain hound
#

cuz all this seems to do is give away my gamepass for free as roblox earns revenue

kindred heart
#

prolly idk

glad cosmos
#

Anyone got a working gun system that I could use? Wasnโ€™t able to find much online

ebon tangle
#

anyone know why it says this

static coral
safe nebula
fathom pebble
#

hi guys

gaunt turret
light fractal
#

Can someone tell me why I can't get my scrollingframe with textlabels inside it to properly fit on other resolutions, when i switch to something with a smaller screen, it wont scroll to the bottom, and using AutomaticCanvasSize it tries to fit all the elements of the scrollingframe on the screen at once. It seems to squish all the elements smaller. I would send a picture but I dont have perms

chilly canyon
#

Because

hallow cairn
#

Hey everyone, I'm trying to set up a game system where after a sequence of events in game, a player walks on a finish pad. when this event occurs, a cutscene needs to activate, and the player is assigned one of 2 roles. if one role is selected, an animation pre made plays where once finished, they are teleported to one area, and when other role is selected, a different teleport to different area sequence happens. How would I go about setting this up?

light condor
light condor
#

if your animation plays once the finish pad is touched you can do this

#

but if it's once all players touch the pad

#

I would loop through the players and then send in their role through there

hallow cairn
#

Thank you!

vernal peak
#

guys im using remote function for codes gui

#

is that bad

native notch
#

#vibecoding #nojob

vernal peak
lofty parrot
light condor
vernal peak
hallow cairn
lofty parrot
#

Your name and pfp are awfully similar to a person I know

hallow cairn
#

I need to change the username I set it to thise a while ago and just never changed it, and also for pfp I just watched reze arc as a CSM fan and really liked it

lofty parrot
#

Fair enough ๐Ÿ˜ญ

hallow cairn
#

Good luck finding the Basil person if you're trying to find em ๐Ÿ™๐Ÿ™

lofty parrot
#

Oh no I'm not ๐Ÿ˜ญ

#

Just thought you knew them

light condor
#

What is this supposed to mean

#

RemoteEvents are for communication between the client & server, vice versa

vernal peak
#

nvm i got my answer

hallow cairn
stiff saddle
#

Hey everyone, Iโ€™ve got a commission request to script a full gun system in Roblox that works in both third-person and first-person โ€” including shooting, aiming, and switching smoothly between the two views. What would be a fair price to charge in Robux for something like this? Just want to make sure Iโ€™m giving a good and reasonable quote. Thanks!

light condor
stiff saddle
#

ye

#

like

#

it is for ww1 game

#

they want sscope and that all things working

light condor
#

ok but could you show code snippets, not full thing considering it's a commision but just how you create the gun, etc.

stiff saddle
#

screenshare i can show

#

not script ill show the gun working like you know

light condor
#

ok

light condor
#

I'm trying to help you figure this shit out and instead of listening to me you're asking AI

#

cutting me off

#

and you randomly left the call in the middle of me talking

#

๐Ÿคฆโ€โ™‚๏ธ

#

no wonder the people you were commisioning for dropped you

stiff saddle
#

he dm me agan and said 2k for pistol and sniper

#

;-;
is he dumb or smt

#

he can use the script in other guns and just change some things done

#

he think im dumb

#

i will not take this deal

tame island
#

How caan I make a tool that morphs you into a part? but then would it be possible to turn back into ur normal roblox character ? with out respawning

bronze path
tame island
#

its more of a obby game, disabling reset breaks the game

bronze path
tame island
ancient halo
#

I'm using a align constraint, and I dont want it to effect the Y rotation. How do I do that?

light condor
#

also you are dumb because he's paying you to do work that supposedly takes you less than 5 minutes and you think he's scamming you

light condor
#

see this is what I mean

#

I have to be getting ragebaited right now

#

is nobody seeing ts

stiff saddle
#

Bro he is a scammer man he told 1.5k final so I canceled

light condor
#

so he hasn't paid you for the initial system?

bronze path
stiff saddle
#

But idk if he really is scammer no proof

light condor
#

they wanted you to make a system for you

#

they said "we can't pay you until christmas"

#

you should have just blocked them or closed the DM right then and there

#

I tried telling you this but you wanted to listen to your AI Chatbot instead of me and you randomly hung up on me while I was trying to help you avoid them

#

secondly considering you use AI to answer all your questions I can only assume your gun system was made with AI considering you're completely illiterate; English as a first language or not

#

do me a favor and just stop doing commisions until you gain a consciousness of your own

stiff saddle
#

;-;

#

Wth u never told me to close

#

The deal u did not replied

#

And I used perplexity because I type fast and sometimes I mistyped smt

#

U can't put a allegation of using ai to make system by ai until u got any solid proof

#

And ai can't make 600 800 lines of code tbh

bronze path
#

it's kind of bad at handling long scripts

stiff saddle
#

And in ai ik gemini chatgpt and perplexity because I saw ads on that

stiff saddle
#

So this discussion ends here

limpid bison
#

this is why you learn to script, and use ai as an assistant; ai usually gets weird after 32k characters with modern models

stiff saddle
limpid bison
#

well ai cant always be the greatest for example, it never understand that you cant do a tween animation for frames, only in image buttons and image labels; it has hard time understanding a call to replicated storage is more memory effecient than creating a new instance via code everytime something fires; ai is only good but will never do things rn like " make me a whole game " its more for questions like " help me link link this animation id to a local script that will replace the default run with this run animation for my r6 rig" you need to be descriptive and only do one thing at a time for hyper accuracy; GL if your trying to make module chains like the pros tho

jovial ember
#

can anyone help with a acceleration thing so when it detects ur running u go faster and faster and the max is 50

dapper night
dapper night
dark imp
#

What are the pros of OOP and how different is it from a modular framework?

dapper night
# dark imp What are the pros of OOP and how different is it from a modular framework?

makes code safer
prevents accidental modification
easy to reason about
less repetition
easier to expand your game or system
cleaner code
makes large systems easier
able to read
easy for teams
best for big projects
OOP is different from modular programming because OOP creates objects that each have their own data and behavior, like individual humanoids or parts. modular programming just provides reusable functions without creating separate instances. So modular code organizes features, while OOP lets you make many unique objects that act on their own.

#

get it?

#

@dark imp

dark imp
dapper night
primal python
#

also disable died effect I mean

still slate
#

anyone needs full game packages ( ready made games )?

dapper night
real hemlock
#

๐Ÿ’€

edgy venture
#

did you guys know you cant instance a player object

edgy venture
balmy zenith
#

holy damn

abstract eagle
#

who knows scripting

#

i need someone who can script promotion blimp for me i have model and ui

#

ill pay

#

dm me if can

rocky basin
#

its all in green so yeah

steel shadow
#

Yo guys anyone willing to teach me scripting? I could pay some rbx (not much)
If it would be fun to u then les do it ill get some guidance too

covert locust
#

how do people make Inverse kinematics leg placement that match animations

primal python
molten girder
#

That's 3 and a half million

#

slide me sum fr fr

bronze path
steel shadow
#

Oh i js saw
But anyways I dont have much money to spend

thick glade
#

guys what should i learn next after knowing the basics im kinda lost rn

balmy zenith
woeful ravine
#

lf a scripter for a duo coding project lmk

leaden yew
#

do you guys know how to make the character dissapear when die?

#

like instead of their body part falling, it dissappear all together

static coral
leaden yew
pliant robin
#

f

shut karma
#

hello i need help i just built a boat and i want it to move fast any one that can do that ill inv to studio

somber vault
#

do u guys like my file structure? its very modular

#

the one with 4 chains handles giving armor the one with 3 chains handles tools and the other 2 are for teleports

slender cairn
#

anyone wanna try out my game? a fighting game

peak oak
#

@gusty pecan check dms

limpid bison
gloomy leaf
#

ai is the goat?

timber maple
#

yo guys this is day 3 of asking if there are any scripter slaves pls help ๐Ÿ˜ญ

full wave
snow bramble
#

Yo guys

#

how do I see the physics info tab in game

#

I know microprofiler is Ctrl+F6 but Idk the other ones

balmy zenith
#

its from f2 to f6

foggy fiber
#

how can i find out what script is increasing games ping

rotund pawn
#

How do I design patrol NPC from waypoints, but if detects player, cancels move to? Currently it waits for move to finished and its slow

night gazelle
#

I was wondering, is it even possible to generate a set of vertices that's random but also looking like this island (only the terrain)

#

specifically the bottom part

#

cause technically the top part is just a flat polygon

night gazelle
#

How would you guys deal with this or like your approach

potent igloo
#

to make the faces of the polygon theres probably a pre made script somewhere

#

its gonna end up being perfectly placed wedgeparts

spice crow
#

what s leaderstats

#

i wonder

night gazelle
#

that could be one way of doing it

#

but I would still have to stitch the top terrain with the bottom terrain

lusty barn
rotund pawn
#

I have serious issue: I am unable to cancel Pathfind to checkpoint for NPC to chase player, how can I do it?

#

Even GPT cant handle this error lol

dapper night
#

grow up

somber vault
teal wraith
#

who can make me combat warriors 2?

dapper night
somber vault
#

i've got an offer

somber vault
#

that are themed like cw2

teal wraith
#

hmm

#

how much

#

we should prolly go dms we finna get muted

somber vault
dapper night
plucky garden
#

im a pvp programmer master here

teal wraith
#

wow please make cw2 in a minutr

plucky garden
teal wraith
plucky garden
#

seriously speaking

teal wraith
#

no ๐Ÿ˜” ๐Ÿซท ๐Ÿ”ซ

spice crow
#

are you sure

#

im scared

dapper night
spice crow
#

I think its harmfuk

silver marlin
#

Made a grid system for conveyors. Would not recommend

silver marlin
#

Trying to line everything up with roblox's hitboxes took more time than coding the system

iron kraken
#

ur using raycasts?

silver marlin
#

Kinda

#

It uses ray casts to determine what the user is looking at then determines if it needs to snap on using cframe of the other part that has already been placed. If it doesnt need to be snapped then it moves on a .25 gird line

lusty barn
#

or are you talking about placement

silver marlin
#

Placement is physics based

iron kraken
#

u cud set up a grid of points then raycast from the camera then put the conveyor to the position that is closest to where the raycast hits then handle everything else through a table

ruby gulch
#

๐Ÿค”

light condor
#

No cap, nobody would help you with that because youโ€™re basically asking them to make the entire system when they can just make it themselves for free.

glad haven
#

is it possible to make a custom rigged npc that just walks and stands still with animations

#

i was gonna make a post but idk the price

iron kraken
silver marlin
#

I might re code that in the future

tidal shuttle
#

anyone know any good videos on how to organize your module scripts

supple oyster
#

Advanced scripter would make their own brainrot game if they wanted

vagrant mulch
fallow gulch
#

Does somebody knows what vsc icon pack is this from?

vagrant mulch
#

My head hurt anyone wanna do my work

vagrant mulch
#

Instead of Roblox

#

Or is there another reason

fallow gulch
somber vault
#

Anyone need a scripter your price

supple oyster
#

1 pesso

fathom heron
#

why cant i click on move?

wise turtle
sage lagoon
#

can someone help me

#

how do i increase render distance

iron kraken
sage lagoon
#

i have a 5060 rtx

#

graphics arent a issue

rigid tundra
#

what cpu u got

stone island
#

does anyone know any fun projects to make in terms of scripting?

balmy zenith
sage lagoon
balmy zenith
#

workspace

sage lagoon
#

god bless

south bridge
gritty brook
#

On god, I did not think that making a cold breath effect via code was gonna be this hard

balmy zenith
#

๐Ÿค”

spring atlas
sage lagoon
wide igloo
#

Im about to learn coding, anything I should know first?

balmy zenith
#

no

iron kraken
#

thats too much

#

๐Ÿ™

granite fractal
#

(we're desprate)

onyx inlet
#

ngl man I donโ€™t think anyone wants to do all that for $7

hallow cairn
#

what about 8 tho ๐Ÿ‘€๐Ÿ‘€

granite fractal
bronze path
granite fractal
fallow gulch
lime relic
lime relic
wide igloo
#

lol, sounds good

lime relic
#

reading very important

#

you need to read the documentation too

#

everything there is listed pretty well ordered iirc @wide igloo

languid canopy
#

would anyone happen to know if editing terrain colors in game is possible? As in creating an in-game setting that lets you change it in your experience

dusk ether
#

is python and lua similar?

#

im taking a python course bc i couldnt find any free lua courses

fallow gulch
#

you can apply most of your python knowledge to lua, syntax will change obv

dusk ether
tulip flint
#

how can i make rounded corners without the humanoid?

tulip flint
#

!

little wharf
#

Hey scripting community, when you where learning, what motivated you?

I have been really motivated to learn, until I looked into the scripts others where doing and after seeing huge 400+ line scripts, I have lost motivation.
Any suggestions?

dusk ether
little wharf
dusk ether
#

but i think if you put time into learning how to code, you will start to understand it better

little wharf
slender cairn
#

anyone plays combat game? need someone to try my combat

copper cape
#

anyone fammiliar with .NET framework and SQL servers? need help will be appreciated. will not take much time just 1-2 questions

copper cape
#

wwha

hoary cedar
shut sorrel
# little wharf Hey scripting community, when you where learning, what motivated you? I have b...

400+ lines isn't that hard to read, it's mostly just functions doing something specific used through out the script, you can copy the name of a function and see where it's used with Ctrl+F, more experienced devs use modules now which tries to keep scripts from being over 400 lines so it's easier to read, it's basically taking a 400+ line script and splitting it to smaller scripts just so it's not so chaotic to look at and lose motivation

#

I was motivated to just make a fun game and just practiced every day until it worked, all my scripts were disgusting in the beginning but it worked

hoary cedar
#

Don't be fooled though. Games reach anywhere from 30k -> 200k lines of code

shut sorrel
#

Yes if you combine all the modules together, being organized is very very important to not losing motivation

little wharf
shut sorrel
#

It happens fast like you don't even pay attention to the amount of lines you write

shut sorrel
#

You just have a goal and you just make stuff until it works and just might happen to take that many lines

little wharf
#

At that point you just donโ€™t go outside

hoary cedar
#

200k lines of code comes together over the course of months

little wharf
shut sorrel
#

A lot of people add a lot of spacing in code to organize what they're looking at too so a lot of it is blank space too

little wharf
#

And these people would be full time devs

hoary cedar
little wharf
shut sorrel
#

yea I don't like the hastle of uploading to github since I just prototype concepts most the time

little wharf
#

Wait

hoary cedar
little wharf
#

Can one of you give me a good project to do

#

I canโ€™t think of anything good I could make as a project to learn scripting

shut sorrel
#

I've been using luau server plugin but it works too

hoary cedar
#

Visual Studio Code provides a CLI connection to your repository. Standard version control

shut sorrel
little wharf
#

Who is Simon

hoary cedar
#

The pattern repitition game

little wharf
#

Ohh

#

That sounds cool

shut sorrel
#

You should really make what you're interested in to stay motivated

hoary cedar
#

It is a basic exercise of Luau fundamentals

little wharf
#

I can also make it look good because Iโ€™m a UI designer

copper cape
shut sorrel
#

learn from other peoples script from toolbox too, it's a really good resource to scripts that do work(for the most part) and if it's similar to what you want to do the analyze the code

hoary cedar
#

I wouldn't advise learning from the toolbox nowadays

shut sorrel
#

Tru I mean I learned like 8 years ago so

#

Bit different

hoary cedar
#

It's chalk-full of legacy code and anti patterns

little wharf
#

Ah

shut sorrel
#

wow 10 years ago actually

hoary cedar
#

#PeasFactory

balmy zenith
little wharf
#

Iโ€™m gonna make the patern repetition one

shut sorrel
#

yesHarold

little wharf
#

I should use math.random for the patterns yea?

little wharf
#

Wait but once I have that pattern how do I save it to check if the player got it right later on

shut sorrel
#

I've never really used YouTube for scripting until I started to get more advanced and go to sleitnick or suphi kaner

#

Yt videos just feel like you're copying homework without learning

balmy zenith
#

no one really teaches "advanced" coding

hoary cedar
#

They're intermediate concepts at best

shut sorrel
#

It's more about the concepts that you learn like oop, projectile, server replication

hoary cedar
#

Take a university level algorithms and data structures class

shut sorrel
#

That does help, I've been thinking starting the MIT free courses

#

It's just a huge time commitment

balmy zenith
hoary cedar
winter magnet
#

making tetranum

function Tetra.fromString(str: string): Tetra
    str = str:gsub('%s+', '')
    local man, exp, layer, hyper = str:match("^([%d%.%-]+)e([%d%-]+)%(([%d%-]+)%)โ†‘([%d%-]+)$")
    man, exp, layer, hyper = tonumber(man), tonumber(exp), tonumber(layer), tonumber(hyper:: string)
    if man then
        return Tetra.new(man, exp, layer, hyper)
    end
    local man2, exp2, layer2 = str:match("^([%d%.%-]+)e([%d%-]+)%(([%d%-]+)%)$")
    man2, exp2, layer2 = tonumber(man2), tonumber(exp2), tonumber(layer2:: string)
    if man2 then
        return Tetra.new(man2, exp2, layer2)
    end
    local man3, exp3 = str:match("^([%d%.%-]+)e([%d%-]+)$")
    man3, exp3 = tonumber(man3), tonumber(exp3:: string)
    if man3 then
        return Tetra.new(man3, exp3)
    end
    local num = tonumber(str)
    if num then
        return Tetra.fromNumber(num)
    end
    error("Invalid Tetra number format: " .. str)
end``` so much fun lol for creating Tetra
little wharf
hoary cedar
shut sorrel
#

Yeah they are a bit intermediate, I mean more like greedy meshing and stuff with math is more advanced for me

little wharf
#

Wait i can read some

hoary cedar
#

Sebastian Lauge is a great channel for gaining exposure to higher-level game development concepts

#

And just a fun ride in general

shut sorrel
#

I know all those I just wouldn't be able it to write it myself without using AI to help with the math

hoary cedar
#

That's why I study mathematics

#

I always envied those who knew what formulas to apply from the get-go

#

Being able to develop and/or optimize mathematics in game development is a valuable skill

shut sorrel
#

I've definitely learned my math by just making stuff in Roblox but I've never studied it, which I wish I did earlier

hoary cedar
#

If there's anything you can take away from mathematics, it's how to simplify ;)

balmy zenith
#

maths is hard

shut sorrel
#

I'm addicted to optimization

hoary cedar
#

It's painfully similar to scripting

balmy zenith
#

well prolly the algorithms thats hard

winter magnet
hoary cedar
#
#

Here's an entertaining example

shut sorrel
#

I think the written math looks more confusing than seeing written in a script, it makes much more sense seeing math written in a script

#

probably because I never studied math

balmy zenith
#

yep

shut sorrel
#

I remember taking math in school I had to write it like a script

balmy zenith
#

i prefer reading math in code

#

cus math symbols dont make sense and sre hard to remember

shut sorrel
#

Yeah, in a script it makes sense what's actually happening

hoary cedar
steel shadow
#

why cant i send a picture here

slender cairn
#

anyone wanna try me fighting game sunglas

shut sorrel
soft egret
#

Whatโ€™s number 1 tutorial to learn cofr

#

Code

shut sorrel
# soft egret Whatโ€™s number 1 tutorial to learn cofr

there isn't just one tutorial, you can start with any beginner YouTube tutorial to get the absolute basics, but the rest you just google quest of what you need to do like googling "how do I tween a frame when click a button roblox" and it will have dev forums or documentation that you read

#

It's all mostly consistent practice

tired violet
shut sorrel
#

they're both just written out instructions line by line, your brother should learn C

upbeat saffron
#

No need to fear, the scripter noob is here !

edgy otter
#

Calm down bruh

upbeat saffron
odd bluff
slender cradle
odd bluff
odd bluff
solid rain
# odd bluff Brawldev

I agree. Beginning is slightly hard because you need to learn properties and some other stuff beforehand

odd bluff
#

Somehow I learnt it

solid rain
#

I had problems with understanding CFrames and how to apply them correctly thats all

odd bluff
#

U have the 3D modeler role ๐Ÿ˜ญ

solid rain
odd bluff
#

Iโ€™m a new modeler

#

But i got Good really fast

#

Iโ€™m tryna learn how to texture

#

Cus my textures keep unaligning

#

With my model and become blurry

solid rain
#

well u can set resolution higher or set rendering property higher one of the two could fix your problem

#

Or maybe youre doing UV unwrap incorrectly idk

hexed cedar
#

Whatโ€™s the most safe way to make an inventory system that DOES NOT use data store?

solid rain
#

Idk probably track the tools character and backpack with child added and removed and store them in tables idk why u need datastore

normal jasper
#

should i use cframe or bodymovers if i want to replicate smooth movement while using client prediction on the client?

solid rain
#

Probably cframes and lerping

umbral elbow
#
local rig = workspace.Rig
local humanoid = rig:WaitForChild("Humanoid")
local hrp = rig:WaitForChild("HumanoidRootPart")
local debounce = {
    
}

local part = workspace.Part

local following = false
local targetRoot = nil

local function followLoop()
    while following and targetRoot and targetRoot.Parent do
        humanoid:MoveTo(targetRoot.Position)
        task.wait(0.05) -- smaller = more responsive/smooth
    end

    following = false
end

part.Touched:Connect(function(hit)
    local targetHumanoid = hit.Parent:FindFirstChild("Humanoid")
    if not targetHumanoid then return end

    local root = hit.Parent:FindFirstChild("HumanoidRootPart")
    if not root then return end

    targetRoot = root
    
    local player = game.Players:GetPlayerFromCharacter(hit.Parent)

    if not following and not debounce[player] then
        debounce[player] = true
        following = true
        task.spawn(followLoop)
    end
end)

rig:FindFirstChildOfClass("MeshPart").Touched:Connect(function(touched)
    touched.Parent:FindFirstChild("Humanoid").Health = 0
end)
```Thoughts?
#

Anyone?

solid rain
normal jasper
normal jasper
dark juniper
#

Have u tried

normal jasper
#

thats what i initially did but the movement was delayed on the client, its because the server is receiving the request to move both players x ms after the initial click

dark juniper
normal jasper
dark juniper
#

What benefits would client prediction add

normal jasper
#

it gives the illusion of responsiveness, while the client is sending a request to move itself and the victim of an attack, the client is creating a "prediction" of what would happening according to the current game state