Introduction
KHIM is a platform for making and playing 3D games. You build a world in KHIM Engine, script it in Luau, and go live - from then on anyone can play it in the KHIM app on Windows, Mac and phones, or straight in the browser at khim.net.
The three pieces
| What it is | Where | |
|---|---|---|
| KHIM Engine | The editor: build, script, test and publish worlds | Download from khim.net (Windows and Mac) |
| The KHIM app | Where players play. One app for every world | Windows, Mac, Android, iOS and the browser |
| The Workshop | Your worlds on the website: settings, team, versions, analytics | khim.net/create |
Words KHIM uses
| Word | Means |
|---|---|
| World | A game's file and everything in it (.khim) |
| Unit | KHIM's length. A character is about 5 units tall |
| Part | A block, ball, wedge or cylinder - or a MeshPart showing a 3D model |
| Model | A group of parts that moves and copies as one |
| Script | Luau code that runs on the server and owns the game |
| ClientScript | Luau code that runs on each player's device: input, UI, camera |
| Module | Luau code that other scripts require |
| Go live | Publish the world so players can join it |
| Camera lock | The player's mode where the camera stays behind the shoulder (Shift, or the lock button on phones) |
How a world is organised
Everything in a world lives under one of these, shown at the top of KHIM Engine's Hierarchy:
| Container | Who has it | Use it for |
|---|---|---|
| World | Server and every player | Everything players see and touch |
| ReplicationService | Server and every player, but not in the world | Models to clone, Modules both sides use. Scripts call it shared |
| ServerService | Only the server | Server Scripts and anything secret |
| ClientService | Every player | ClientScripts |
| StorageService | Only the server, and nothing in it runs | Models and Modules kept for server Scripts |
| UI | Every player | Canvases, panels, buttons and the ClientScripts that drive them |
The one rule to remember
The server decides. A ClientScript can ask for something (with net.send), but only a server Script should change health, coins, scores or anything else that matters. See Server and client.
Where to go next
- New here? Start with Install and your first world, then the obby tutorial.
- Know Luau or Roblox already? Read Scripting basics and Coming from Roblox.
- Looking for a function? Use the search (Ctrl K) or the Reference.