FNF Psych Engine Script Creator
Welcome to the FNF Psych Engine Script Creator! This tool helps you create Lua scripts for Friday Night Funkin' Psych Engine mods. Below you'll find a comprehensive list of available functions, variables, and callbacks to use in your scripts.
Available Variables
luaDebugMode
luaDeprecatedWarnings
inChartEditor
curBpm
bpm
scrollSpeed
crochet
stepCrochet
songLength
songName
isStoryMode
difficulty
weekRaw
week
cameraX
cameraY
screenWidth
screenHeight
startedCountdown
seenCutscene
curBeat
curStep
score
misses
ghostMisses
hits
rating
ratingName
inGameOver
mustHitSection
altAnim
gfSection
botPlay
Strum/Receptor Variables
defaultPlayerStrumX0 - defaultPlayerStrumX3
defaultPlayerStrumY0 - defaultPlayerStrumY3
defaultOpponentStrumX0 - defaultOpponentStrumX3
defaultOpponentStrumY0 - defaultOpponentStrumY3
defaultBoyfriendX
defaultBoyfriendY
defaultOpponentX
defaultOpponentY
defaultGirlfriendX
defaultGirlfriendY
Preferences Variables
downscroll
middlescroll
framerate
ghostTapping
hideHud
hideTime
cameraZoomOnBeat
flashingLights
noteOffset
lowQuality
Available Functions
- characterPlayAnim(character:String, anim:String, forced:Bool = false)
Play a character's animation
- characterDance(character:String)
Make a character do their idle dance
- getCharacterX(type:String)
Get a character's X position
- setCharacterX(type:String, x:Float)
Set a character's X position
- getCharacterY(type:String)
Get a character's Y position
- setCharacterY(type:String, y:Float)
Set a character's Y position
Score/Accuracy Functions
- addScore(value:Int = 0)
- setScore(value:Int = 0)
- addMisses(value:Int = 0)
- setMisses(value:Int = 0)
- addHits(value:Int = 0)
- setHits(value:Int = 0)
- setRatingPercent(value:Float)
- setRatingString(value:String)
Key Press Functions
- keyJustPressed(name:String)
- keyPressed(name:String)
- keyReleased(name:String)
Mouse Functions
- mouseClicked(name:String)
- mousePressed(name:String)
- mouseReleased(name:String)
- getMouseX(camera:String)
- getMouseY(camera:String)
Other Useful Functions
- triggerEvent(name:String, arg1:String, arg2:String)
- addLuaScript(path:String)
- getColorFromHex(color:String)
- getSongPosition()
Camera Functions
- cameraShake(camera:String, intensity:Float, duration:Float)
- cameraSetTarget(target:String)
- cameraFlash(camera:String, color:String, duration:Float, forced:Bool)
- cameraFade(camera:String, color:String, duration:Float, forced:Bool)
Tween Functions
- doTweenX(tag:String, vars:String, value:Dynamic, duration:Float, ease:String)
- doTweenY(tag:String, vars:String, value:Dynamic, duration:Float, ease:String)
- doTweenAngle(tag:String, vars:String, value:Dynamic, duration:Float, ease:String)
- doTweenAlpha(tag:String, vars:String, value:Dynamic, duration:Float, ease:String)
- doTweenZoom(tag:String, vars:String, value:Dynamic, duration:Float, ease:String)
- doTweenColor(tag:String, vars:String, targetColor:String, duration:Float, ease:String)
- noteTweenX(tag:String, note:Int, value:Dynamic, duration:Float, ease:String)
- noteTweenY(tag:String, note:Int, value:Dynamic, duration:Float, ease:String)
- noteTweenAngle(tag:String, note:Int, value:Dynamic, duration:Float, ease:String)
- noteTweenAlpha(tag:String, note:Int, value:Dynamic, duration:Float, ease:String)
Timer Functions
- runTimer(tag:String, time:Float = 1, loops:Int = 1)
- cancelTween(tag)
- cancelTimer(tag)
Sprite Functions
- makeLuaSprite(tag:String, image:String, x:Float, y:Float)
- makeAnimatedLuaSprite(tag:String, image:String, x:Float, y:Float)
- addLuaSprite(tag:String, front:Bool = false)
- removeLuaSprite(tag:String, destroy:Bool = true)
Precache Functions
- addCharacterToList(name:String, type:String)
- precacheSound(name:String)
- precacheImage(name:String)
Callback Functions
These are the main functions you can use in your Lua script to interact with the game:
function onCreate()
function onCreatePost()
function onDestroy()
function onSectionHit()
function onBeatHit()
function onStepHit()
function onUpdate(elapsed)
function onUpdatePost(elapsed)
function onStartCountdown()
function onCountdownStarted()
function onCountdownTick(counter)
function onSongStart()
function onEndSong()
function onGameOver()
function onGameOverConfirm(retry)
function onPause()
function onResume()
function onNextDialogue(line)
function onSkipDialogue(line)
function onSpawnNote(id, data, type, isSustainNote)
function goodNoteHit(id, direction, noteType, isSustainNote)
function opponentNoteHit(id, direction, noteType, isSustainNote)
function noteMissPress(direction)
function noteMiss(id, direction, noteType, isSustainNote)
function onKeyPress(key)
function onKeyRelease(key)
function onGhostTap(key)
function onRecalculateRating()
function onMoveCamera(focus)
function onEvent(name, value1, value2)
function onTweenCompleted(tag)
function onTimerCompleted(tag, loops, loopsLeft)
function onSoundFinished(tag)
Remember to check the Psych Engine documentation for more detailed information on how to use these functions and variables in your scripts. Happy modding!