Docs Quick code
Changelog
What changed in each version of Quick code.
1.0 — 2026-10-13 — a real language
- New engine: code is compiled once to bytecode and run by its own virtual machine
(
shared/map/qc/). It can stop at await()anywhere — inside functions, in the middle of an expression — and carry on later. Conditions are compiled once too. - Functions:
function name(a, b) … end,return,local function, anonymous functions, functions as values, closures (Lua-style upvalues: a closure made in a loop keeps that round's values), recursion, methods (function t:m()), functions written at the top usable from anywhere in the code and from the script's other Code nodes. - Tables:
{hp = 10},t.x,t["k"],t.x = nil;{1, 2, 3}is a list. Assigning into lists, tables and objects:list[i] = v,t.f = v,self.hp = 5, with+=and friends. - Language:
continue,a, b = b, a, several names from a list (local ok, msg = pcall(f)),for k, v in table,for i, v in list,//,^,..=,&&/||/!,--[[ ]], hex numbers./makes fractions (7 / 2is 3.5). - Built-ins: maths (degrees), vectors (
vec,length,normalize,dot,cross,distance…),noise,random,random_pick,seed; text (upper,split,format,replace…); lists and tables (push,sortwith a compare function,map,filter,keys,range,copy…) as functions and as methods;type,num;pcall,error,assert,warn. - Objects: their own values (
self.opened = true, saved), starting values in Properties ▸ Values for code,teleport,look_at,face,tweenwith easing (also onmove),set_scale,tint,follow,flee,stop,hurt,heal,has_tag,say; fieldsposition,hp,max_hp,model,tags,hidden,turn; settingx/y/z/positionmoves them. - Timing & tasks:
dt(),time(),frame(),wait_until(fn, timeout),run_async,every,after,cancel,task_running; loops pause for a frame by themselves after 500 rounds without a wait. - Events & messages:
on("touched" / "bumped" / "used" / "hurt" / "destroyed", fn),send(message, data),on_message, the Event A message is sent,event_data(),run_script(id, data). - The world:
nearest,objects_near,line_of_sight,raycast,tile_at,set_tile,clear_tile,path_to. - Input:
key_pressed,key_released,mouse_x/mouse_y,mouse_tile, gamepad (pad_down,pad_pressed,pad_axis), named controls (action_down,action_pressed). - Sound & screen:
play(sound, volume),play_at,stop_sound,volume,music_fade,choice(question, options),hud_bar. - Libraries & data:
require("Script"); the Data tab anddata("Table"). - Debugging: more checks (unused locals, lines after return, too many values, waits in
dialogues,
=in conditions); errors name the function and the calling line; click an error in Output to open its Code node;watch()(Output's Watch line and F3);breakpoint()with F5 / F10 stepping; the F3 panel lists the busiest scripts. - Editor: Insert ▾ groups every function (Game ▸ …, Language ▸ …, Objects); autocomplete prefers names the code already uses.
- Code World sample (Welcome ▸ Sample worlds): nine stations that show the language off — a light show, easing gallery, data-table monsters, a sin / cos spiral builder, a message-driven vault, a choice() quiz, shared-script chests, a seeing sentry and a watch() / breakpoint() bot.
0.12 — 2026-10-11
- Variables are edited in the Explorer (the Scripts tab's Variables panel is gone). New world variables belong to one world. Switches have a list with on / off at the start.
0.11 — 2026-10-08
- Objects:
obj.show_hud()/obj.hide_hud()show or hide the object's Attached HUD.
0.10 — 2026-10-08
- HUDs:
show_hud(name),hide_hud(name),toggle_hud(name),hud_shown(name).
0.9 — 2026-10-08
- Skillbar:
held(),select_slot(n),put_on_bar(item, n).
0.8 — 2026-10-08
day(): the day counter. On-screen texts can show{day}and{time}.
0.7 — 2026-10-08
- Game systems from code:
spawn(),use_item(),equipped(),money_count(),save_game(),checkpoint(),hud_text()/hud_clear(),start_timer()/stop_timer()/time_left(),lose(),lives_left(),best_score(),shake(),camera_look().
0.6 — 2026-10-07
- Particle effects:
particles(effect, size = 1),obj.particles(effect).
0.5 — 2026-10-07
- Time of day:
hour(),set_hour(h),is_night().
0.4 — 2026-10-07
- Collisions: the It bumps into something event,
other,obj.touching(what),obj.can_move(dx, dy, dz); building without code with Loop and object action nodes.
0.3 — 2026-10-07
- Loops (
while,for,repeat … until,break), loop safety,wait(seconds), objects (self,player,object(),objects()and their commands), reallocalvariables.
0.2 — 2026-10-07
- Lua style:
if … then … endblocks,--comments,..,~=,nil,local,popup().
0.1 — 2026-10-07
- First version: assignments, one-line ifs, game functions, Check button, Code is true.