This plugin will automatically replace that .ps with game.Players.LocalPlayer.PlayerScripts when you go to a new line! There is a list of the different shortcuts below.
Link: QuickScript - Roblox
Shortcuts
.gs: game:GetService
.co: :Connect
.e: 2.718281828459045
.pca: pcall
.sss: game.ServerScriptService
.wfp: repeat wait() until game.Players.LocalPlayer
.gmt: getmetatable
.l: game.Lighting
.ss: game.ServerStorage
.rs: game.ReplicatedStorage
.p: game.Players
.w: wait
.rgt: rawget
.pc: game.Players.LocalPlayer.Character or game.Players.LocalPlayer.CharacterAdded:Wait()
.pg: game.Players.LocalPlayer.PlayerGui
.asrt: assert
.cf: CFrame.new
.scr: script
.senv: setfenv
.pr: game.Players.PlayerRemoving
.tn: tonumber
.sets: settings
.sel: select
.rgb: Color3.fromRGB
.prs: pairs
.en: Enum
.smt: setmetatable
.rf: game.ReplicatedFirst
.rand: math.random
.v3: Vector3.new
.ca: .ChildAdded
.ga: game
.rq: require
.pi: math.pi
.tp: type
.up: unpack
.ti: tick
.pa: game.Players.PlayerAdded
.prid: printidentity
.inf: math.huge
.req: rawequal
.tpo: typeof
.dl: delay
.v2: Vector2.new
.f: function
.err: error
.time: time
.nx: next
.loads: loadstring
.np: newproxy
.sts: stats
.lp: game.Players.LocalPlayer
.pt: print
.ips: ipairs
.sp: spawn
.c3: Color3.new
.genv: getfenv
.xpc: xpcall
.ts: tostring
.hsv: Color3.fromHSV
.colg: collectgarbage
.ws: workspace
.wn: warn
.rst: rawset
.sh: shared
.ver: version
.loadl: LoadLibrary
.elapst: elapsedTime
.cr: .ChildRemoved
.bp: game.Players.LocalPlayer.Backpack
.c: coroutine
.ps: game.Players.LocalPlayer.PlayerScripts
.n: Instance.new
There are some un fixable bugs like no auto indent if you use a shortcut the line before but this is the best I could do with not much control over cursor position in scripts. I know a lot of these shortcuts are useless like .asrt and .elapst. There are probably other bugs that I have not seen yet because I made this in a few hours so just let me know and let me know any suggestions! Once I get better at making plugin guis I will try to make it so you can add your own custom shortcuts and prefix.
--Removed dots since lua doesn't support them, plus it saves time.
local gs = game:GetService
local e = 2.718281828459045
local pca = pcall
local sss = game.ServerScriptService
local wfp = repeat wait() until game.Players.LocalPlayer
local gmt = getmetatable
local l = game.Lighting
local ss = game.ServerStorage
local rs = game.ReplicatedStorage
local p = game.Players
local w = wait
local rgt = rawget
local pc = game.Players.LocalPlayer.Character or game.Players.LocalPlayer.CharacterAdded:Wait()
local pg = game.Players.LocalPlayer.PlayerGui
local asrt = assert
local cf = CFrame.new
local scr = script
local senv = setfenv
local pr = game.Players.PlayerRemoving
local tn = tonumber
local sets = settings
local sel = select
local rgb = Color3.fromRGB
local prs = pairs
local en = Enum
local smt = setmetatable
local rf = game.ReplicatedFirst
local rand = math.random
local v3 = Vector3.new
local ca = ChildAdded
local ga = game
local rq = require
local pi = math.pi
local tp = type
local up = unpack
local ti = tick
local pa = game.Players.PlayerAdded
local prid = printidentity
local inf = math.huge
local req = rawequal
local tpo = typeof
local dl = delay
local v2 = Vector2.new
local f = function
local err = error
local time = time
local nx = next
local loads = loadstring
local np = newproxy
local sts = stats
local lp = game.Players.LocalPlayer
local pt = print
local ips = ipairs
local sp = spawn
local c3 = Color3.new
local genv = getfenv
local xpc = xpcall
local ts = tostring
local hsv = Color3.fromHSV
local colg = collectgarbage
local ws = workspace
local wn = warn
local rst = rawset
local sh = shared
local ver = version
local loadl = LoadLibrary
local elapst = elapsedTime
local cr = ChildRemoved
local bp = game.Players.LocalPlayer.Backpack
local c = coroutine
local ps = game.Players.LocalPlayer.PlayerScripts
local n = Instance.new
One suggestion is to use :GetService() since this is a public plugin as some developers may have renamed their services and so indexing them with the dot wouldn’t work
The intent of the plugin in question is to make writing code a little faster by introducing shorthands that are autoreplaced with their associated fragment of code when typed out; not to make things accessible using short variable names.