Creator Guide
English
English
  • OVERDARE
    • 🚩Introduction to OVERDARE
    • 🐤Get Started
      • OVERDARE App
      • OVERDARE Studio
    • 📌Policy
      • Community Guidelines
      • UGC Creation Guidelines
      • Guidelines on the External Use of UGC
      • Logo Usage Guidelines
      • Intellectual Property Rights Policy
      • Reporting Guidelines
      • Guidelines on Disputing Suspensions and Bans
      • Creator Payout Policy
      • Monetization Guidelines
    • 🅰️OVERDARE Glossary
  • MANUAL
    • 🏰Studio Manual
      • Get Started
        • Studio Interface
        • World Template
        • Coordinate System
        • Studio Test Play
        • World Publish
        • Collaboration
      • Asset & Resource Creation
        • Asset Import
        • Animation Editor
      • Game Development
        • Game Settings
        • Script Editor
        • Align Tool
        • Material Manager
        • Collision Groups
        • Tag Editor
        • Performance Guide
        • World Performance Analytics
      • Object
        • Part
        • Model
        • Camera
        • Physics
        • Lighting
        • Tool
        • VFX
        • Sound
      • Character
        • Character Animation
        • Humanoid Description
      • GUI
    • 📝Script Manual
      • Get Started
        • Script Overview
        • Basic Guide to Lua
        • Coding Style
        • Object Reference
        • Unity Developer Guide
      • Events & Communication
        • Event
        • Server-Client Communication
        • BindableEvent
        • Value Objects
      • Input & Controls
        • Mobile Input Handling
        • TPS Strafing System
      • Advanced Gameplay Systems
        • Saving & Loading Data
        • Tween
        • Module Script
      • Debugging & Optimization
        • Breakpoint
        • Practical Guide to Script Optimization
    • 💡Creator Reference Materials
      • Game Term Translation Guide for Creators
    • 💸Monetization
      • Payout Guideline
  • DEVELOPMENT
    • 📚API Reference
      • Enums
        • ActuatorRelativeTo
        • AnimationPriority
        • AspectType
        • AssetTypeVerification
        • BorderMode
        • CameraMode
        • CameraType
        • ContextActionResult
        • CoreGuiType
        • DominantAxis
        • EasingDirection
        • EasingStyle
        • ForceLimitMode
        • HttpCompression
        • HttpContentType
        • HumanoidDisplayDistanceType
        • HumanoidStateType
        • KeyCode
        • Material
        • MaterialPattern
        • NormalId
        • ParticleEmitterShape
        • ParticleEmitterShapeInOut
        • ParticleEmitterShapeStyle
        • ParticleFlipbookLayout
        • ParticleFlipbookMode
        • ParticleOrientation
        • PartType
        • PlaybackState
        • RaycastFilterType
        • RollOffMode
        • RotationType
        • UserInputState
        • UserInputType
        • VelocityConstraintMode
      • DataTypes
        • BlendSpaceSampleSata
        • BrickColor
        • CFrame
        • Color3
        • ColorSequence
        • ColorSequenceKeypoint
        • Content
        • Enum
        • EnumItem
        • NumberRange
        • NumberSequence
        • NumberSequenceKeypoint
        • OverlapParams
        • PhysicalProperties
        • Ray
        • RaycastParams
        • RaycastResult
        • ScriptConnection
        • ScriptSignal
        • TweenInfo
        • Udim
        • Udim2
        • Vector2
        • Vector3
      • Classes
        • Animation
        • AngularVelocity
        • AnimationTrack
        • Animator
        • Atmosphere
        • Attachment
        • Backpack
        • BackpackItem
        • BasePart
        • BaseScript
        • Beam
        • BindableEvent
        • BlendSpace
        • BoolValue
        • Bone
        • Camera
        • CharacterMesh
        • CollectionService
        • Constraint
        • ContextActionService
        • CoreGui
        • DataStore
        • DataModel
        • DataStoreGetOptions
        • DataStoreIncrementOptions
        • DataStoreInfo
        • DataStoreKeyPages
        • DataStoreKeyInfo
        • DataStoreService
        • DataStoreListingPages
        • DataStoreSetOptions
        • FormFactorPart
        • Frame
        • Folder
        • GlobalDataStore
        • GuiBase2d
        • GuiButton
        • GuiObject
        • HttpService
        • Humanoid
        • HumanoidDescription
        • ImageButton
        • ImageLabel
        • InputObject
        • IntValue
        • LayerCollector
        • Instance
        • Light
        • Lighting
        • LinearVelocity
        • LocalScript
        • LuaSourceContainer
        • MaterialService
        • MaterialVariant
        • MeshPart
        • Model
        • ModuleScript
        • Mouse
        • NumberValue
        • OrderedDataStore
        • Pages
        • Part
        • ParticleEmitter
        • PhysicsService
        • Player
        • PlayerGui
        • Players
        • PlayerScripts
        • PointLight
        • PVInstance
        • ReplicatedStorage
        • RemoteEvent
        • ScreenGui
        • RunService
        • Script
        • ServerStorage
        • ServiceProvider
        • Skeleton
        • ServerScriptService
        • Sound
        • SoundService
        • SoundGroup
        • SpotLight
        • SpawnLocation
        • StarterCharacterScripts
        • StarterPack
        • StarterGui
        • StarterPlayer
        • StarterPlayerScripts
        • StringValue
        • SurfaceGui
        • SurfaceGuiBase
        • Team
        • Teams
        • TextLabel
        • TextButton
        • Tool
        • Trail
        • Tween
        • TweenService
        • TweenBase
        • UIAspectRatioConstraint
        • UserGameSettings
        • UserInputService
        • UserSettings
        • VectorForce
        • Workspace
        • WrapLayer
        • WorldRoot
        • WrapTarget
  • UPDATE
    • 📰Release Note
Powered by GitBook
On this page
  • Overview
  • Naming Conventions Based on Declaration Scope
  • Variables
  • Functions
  • Function Parameters and Return Values
  • Operators
  • Indentation and Line Breaks
  • In a Team Project
  1. MANUAL
  2. Script Manual
  3. Get Started

Coding Style

Overview

Coding style refers to guidelines designed to ensure consistency and readability of code. These are recommended conventions to reduce ambiguity that may arise when writing code and to improve collaboration and maintenance.

Lua script has a flexible and concise grammar structure compared to other languages, so if developers do not establish a unified convention, the expression style of the code can become excessively diverse. Therefore, by using a consistent coding style, you can quickly understand the meaning of the code, such as the scope or purpose of variables, and increase development efficiency.

Naming Conventions Based on Declaration Scope

The following rules are used to distinguish between file-scoped variables, which are declared at the top of the script, and local variables, which are declared within a specific scope, such as a function or control statement.

Variables

File-scoped variables declared at the top of the script should be named with the first letter of each word in uppercase.

-- Good
local Number = 1       
GlobalValue = 2 


-- Bad
local number = 1 
globalValue = 2

Variables declared within specific scopes such as functions or control statements should be named with only the first letter in lowercase.

-- Good
local function SomeFunction()
    local value = 3
    
    if value >= 3 then
        local someBoolean = false
    end
end


-- Bad
local function SomeFunction()
    local Value = 3
    
    if Value >= 3 then
        local SomeBoolean = false
    end
end

Functions

Function names should be capitalized with the first letter of each word in uppercase.

-- Good
local function SomeFunction()
    print("Do Someting")
end

function SomeFunction()
    print("Do Someting")
end


-- Bad
local function someFunction()
    print("Do Someting")
end

function someFunction()
    print("Do Someting")
end

Function Parameters and Return Values

Function parameters and return values must be named with the first letter in lowercase, and spaces should be placed between parameters.

-- Good
local function Sum(numValue1, numValue2)
    local result = numValue1 + numValue2
    local isSuccess = (result ~= nil)
    return isSuccess, result
end


-- Bad
local function Sum(NumValue1,NumValue2)
    local result = NumValue1 + NumValue2
    local isSuccess = (result ~= nil)
    return isSuccess,result
end

Operators

Add a space between operators.

-- Good
local Sum = 1 + 5
local IsPositiveNumber = Sum > 0

if SomeValue == 1 && SomeValue == 2 then
    print("Valid Value")
elseif SomeValue == 3 then
    print("Value Exceeded)
else
    print("Invalid Value"")  
end


-- Bad
local Sum=1+5
local IsPositiveNumber=Sum>0

if SomeValue==1&&SomeValue==2 then
    print("Valid Value")
elseif SomeValue==3 then
    print("Value Exceeded)
else
    print("Invalid Value"")  
end

Indentation and Line Breaks

Use indentation to clarify the hierarchy of the code, such as the scope and flow.

-- Good
if someCondition1 then
    if someCondition2 then
        print("Correct!")
    end
end


-- Bad
if someCondition1 then
if someCondition2 then
    print("Correct!")
end
end

Include a line break at the beginning of a control statement, such as a table, conditional, or loop.

-- Good
local NumberList = 
{
    1, 2, 3
}

for i = 1, 5 do
    print(i)
end


-- Bad
local NumberList = {
    1, 2, 3
}

for i = 1, 5 do	print(i)
end

In a Team Project

In a collaborative project, it is important to unify the coding style among team members. A consistent coding style improves code readability, makes maintenance easier, and helps smooth collaboration among team members. Therefore, it is advisable to define coding rules in the early stages of the project and ensure that everyone follows them. Agree upon variable names, function names, indentation styles, etc., and proceed with the work based on these guidelines!

PreviousBasic Guide to LuaNextObject Reference

Last updated 3 months ago

📝