Have you checked the MineCraft demo? It shows how to lock the pointer and aim at any direction.
play.creaticode.com/projects/660aa865b57a3da838c387bc?version=1
Have you checked the MineCraft demo? It shows how to lock the pointer and aim at any direction.
play.creaticode.com/projects/660aa865b57a3da838c387bc?version=1
Can you be more specific? is it 2D or 3D? local or multiplayer? What kind of vertical movement?
This issue is fixed now. Please try again.
It does work when we test it. Can you please try to do a hard reload first? And then show us the project or a screenshot?
Noted. Our platform has not been very stable lately due to some new features and bug fixes. We are going to reduce the number of releases and implement more testing, and we will invest much more time to ensure stability of the platform.
Sorry about that. This should be fixed now. You may need a hard reload of the playground to pick up the latest version.
Currently the blocks in the “Game” category only supports one set of scores for simplicity. To have different leaderboards for different levels, you would have to implement your own leaderboard. For example, you can store the scores of top players in the project’s data, and sort/update them each time a new score is generated.

Please try again. We made a fix. It appears to be related to some of the new add-ons. You might want to try to disable the add-ons. If this issue still occurs even with no add-on enabled, please share a project with this issue, and we will investigate further. Thank you.
We will check and try to fix it ASAP. Sorry about it.
Can you please share a screenshot from your student? Is the backdrop added to the stage (in the backdrop tab) or not? That would tell us where is the issue. Thank you
Thank you for reporting. This is not acceptable on CreatiCode. Please report all the offending comments using the “report” link, and we will delete them and warn the offending users. If this continues to happen we will delete those users’ accounts.
On the other hand, if you have copied a project from other users on CreatiCode or MIT Scratch, please add a reference to the original project.
The multiplayer blocks only assume a 2D world, since detecting collision in 3D space is much slower. So if you need to use them in 3D games, you have to assume everyone is at the same z position.
Please try again after a hard refresh of the page. We made some changes.
There was an server outage earlier today. It should be fine now. Sorry about that.
@regis said in Block Help for multiplayer blocks:
could you please add 3d support (x, y, and z) values to the blocks which only contain the x and y variables?
Can you provide an example which blocks you are referring to?
We will add the help page for the multiplayer blocks.
There was an earlier outage for our server, so the issues you had are most likely due to that. We are sorry about that.
Can you please have your students try again? If the problem continues to occur, please let us know the range of time when that happened and we will look into the server log to find out more about the issue.
We are confident that this solution will definitely work after some tuning.
We have released a fix for this issue, so it should work now. If you sitll see any issue, please let us know.
We will look into the issue with the broken blocks.
For the new block you are suggestion, there are 2 potential issues:
It is not easy to trigger when “not colliding”, as collision is an instant event.
If the existing block is fixed that sends a message when collision happens, then there is no need to add this new block right? You can just handle that message?
No need to appologize. We appreciate the feedback. We did make some additional improvements earlier today, but it might still not be reliable.
To ensure success, we suggest the students do the following:
If this is not working, please provide a screenshot and time of the day, and we will check our log to find more information about what’s the issue.
The server is in US East but it should still work well for CA.
This problem has been resolved now. Please reshare the project then try again.
This will be fixed later today. The issue is that recently we switched to a new versioning system, so the owner is editing the “draft” version while the guest can only see the shared version.
Coding agents like Claude Code or Codex have been drastically changing how computer programmers work over the past year, and will continue to do so. They can write code much faster than human programmers, and they even enable people who don’t know coding to create apps and websites by simply describing them with words - so called “vibe coding”.
At this point of time, no one can predict what software engineering looks like in 10 years, or how AI would transform other types of jobs. However, it is pretty obvious that everyone would be using AI agents as part of their work, so it is an important skill for every student to pick up.
Today, we are introducing a new “agent mode” for the XO AI assistant. In this mode, XO would not just “chat”, but actually make changes to the assets or code blocks in your project directly based on your instructions, such as adding a background image or changing some code blocks. If you learn to use the agent mode well, you will not only build projects faster on CreatiCode, but also become more comfortable working with other agents for learning or work in the future.
To use XO in the agent mode, you simply need to check this checkbox in the XO chat window, and your selection will be remembered. Uncheck it to return to the previous “chat-only” mode.

For teachers, you can enable or disable this feature for the class in the class management page:

When working with the XO agent, this is typically what would happen:
The first and forth steps now become much more important, and they will require creativity, critical thinking and agency.
In addition, knowledge about coding is still very valuable. They will allow you to specify the task better and evaluate the agent’s work better.
Every time you submit a message, it will be scored based on how well it is written. This is our “Prompt Clinic” tool that helps you improve prompting skills over time.
If the score is 1 (the lowest), that means your request maybe unclear or confusing, so it will NOT be sent to XO; if the score is 2 to 5, then the request will be sent to XO as usual (not blocked).

When the score is 1, you can click the continue anyway button to force the agent to respond, but we strongly recommend you to send a new request that is clearer and more detailed.
Read more about the Prompt Clinic in this post.
Below is a more concrete example of how you can work with the XO agent to build a simple game. It is just an example to give you some idea how it works, and when you use the agent yourself, it may behave very differently depending on how you prompt itt.
Create a new project, open the XO chat window, and turn on the agent mode. You can turn it off to return to the “chat” mode, or close the window using the “X” button at top right.

Since we are starting from a blank project, make sure the agent knows what type of game you want to build, and provide enough information for it to get started (the more the better). If the game is kind of well known, then it should know what to build from the name, but if it is a more original game idea, then you need to provide more information.
For this example, we will start with this request: build a classic breakout game, with a few rows of breaks at top, and the player controls a paddle to bounce a ball up to break the bricks.

As shown, the Prompt Clinic gave it a score of 3 (Solid), because it is very broad and missing many details. That’s still good enough for now.
In the previous step, the agent first suggested a first milestone that it can work togethers, then asked 2 questions, one on the color of bricks, and another one whether to get started on the first milestone.
It is always a good idea to answer the agent’s questions, unless you want to make big changes in the plane.
In this case, suppose we don’t want the agent to start coding yet. Instead, we want it to prepare all the sprites and the backdrop first. We can provide more details like this: make the bricks colorful. Also, don’t work on any code yet. For first milestone, only prepare the sprites and the backdrop.
This is a fairly “strong” prompt that specifies the exact scope of work for the agent to work on. As you will see, the Prompt Clinic rated it as 5 (Exceptional).

After some thoughts, the agent decided that it has enough information to get to work! It generated a simple blue background, and 5 colored bricks. During this time, the XO chat window is minimized at the bottom right, so we can observe what it is doing. When it is done, it presents a summary of what it did for us to review, and also suggests what can be done next:

The stage looks like this now:

In the previous step, the agent did not generate the paddle and the ball, which are also essential to the breakout game. This is because the agent is instructed to only work on small milestones and do not do “too much” in each run. This allows the user to review its work without overwhelming them. In this case, the agent already created a backdrop and 5 brick sprites, so it “feels” this may be a good time to stop.
For this step, we can simply make it finish the artwork: add the paddle and the ball, and remove the dog sprite. Of course, we could just remove the dog sprite ourselves, but this is a good test.

It turns out the agent did a pretty good job in following our instruction.
Before continuing, we should fix another problem: the agent added 5 brick sprites with different colors. However, to be more efficient, we should only have one brick sprite with multiple costumes, so we can easily create clones of this sprite. This is where if you know how to code already, you can point out issues with the agent’s work.

As shown, the agent created the single Brick sprite, and then deleted most of the existing bricks. It somehow missed the purple brick (the agent is not perfect), so we have to delete it ourselves to save time.
Now the project has all the sprites we need, and the agent also renamed our project based on our request:

Finally, we are ready to ask the agent to start coding. It is always a good idea to give the agent a small milestone to work on. In this case, let’s make it focus on the bricks:now add code to the Brick sprite so it creates 5 rows of bricks, 10 in each row, using clones.

This time the agent added some blocks to the Brick sprite. It will create the bricks at top like this:

Whenever we submit a new request, a snapshot of the entire project is taken, so if we don’t like what the agent did, we can revert the project to its previous state and try again.
In this example, the bricks are all the same color for each row. Suppose we want to make the colors more random, we can send a new message to ask the agent to fix it, or we can trigger a “retry”:

As shown, after we click “retry” and confirm, the project is reverted to its state before any code was added to the Brick sprite, and our message is copied into the input box for us to reuse. In this case, we will simply add some addition requirement that the bricks have to be random:

Now we get a random brick wall like this:

The game is still not done, but we will stop the example here since you have seen how the agent works. Feel free to create this game or any other project you like.
In summary, the XO agent is not perfect, but it can already help you build your dream project faster and maybe better. The more you use it, the more you will understand its strength and weakness. Give it a try!
To help you learn to improve your prompting skills, we have developed a new tool called “Prompt Clinic”. Whenever you submit a message to XO, either in the chat or agent mode, we would give it a score and provide some feedback on how well that prompt is written.
Your prompts may get a score between 1 and 5. Below is the rules used to determine the score:

When your prompt is given a score of 1, it will be automatically blocked. That is, it will not be sent to the XO server for a response. For prompts with a score of 2 to 5, they will be sent to XO as usual.

When this happens, don’t just wait for XO to respond, since it will not see your prompt. You can click the continue anyway button to force the agent to respond, but we strongly recommend you to send a new request that is clearer and more detailed.
There are some commonly used prompting techniques that would normally lead to much better results if you used them well. They are listed below for your information.
One of the easiest ways to get a sharper answer from XO is to tell it who it should be when it replies. Large language models know a lot about almost every subject, but they answer more precisely when you pin them to a specific perspective. Without a role, XO tends to give generic, middle-of-the-road answers. With a role, it pulls from the vocabulary, habits, and typical concerns of that expert.
In Creaticode, a role is especially useful when your question sits on the edge of a specialty — physics, game design, art, storytelling, data, or teaching younger kids. Picking a role nudges XO to use the right words and think about the right trade-offs.
Examples you can try:
Notice that the role can be a profession (teacher, designer), a skill level (mentor, beginner), or a personality (strict reviewer, friendly coach). Pick whichever best matches the kind of answer you need.
A worked example shows XO exactly what shape of answer you want. Instead of describing the output in words (“give it a nice format”), you show one or two finished samples and ask XO to continue the pattern. This is much more reliable because words like “nice” or “clear” mean different things to different people, but a concrete example can only be read one way.
This technique is particularly helpful when you want a list of items, a naming scheme, dialogue lines, or formatted data.
Examples in Creaticode:
Player_Cat, Enemy_Dog, Item_Apple. Please suggest names for the rest of my sprites following this pattern.”Zogra the Pink Blob, Krix the Floating Eye.”Score 10 → 'Nice start!', Score 50 → 'You're on fire!'. Now give me messages for 100, 200, and 500.”You don’t need many examples — two is usually enough. The more unusual your style, the more useful it is to show examples.
Never make XO guess numbers, names, or error messages when you can paste them in directly. Paraphrasing (“the error said something about undefined”) forces XO to guess, and guesses are often wrong. Real data shuts down the guessing and lets XO focus on solving the actual problem.
This matters a lot in Creaticode because the details are often exactly what determines the bug.
Examples:
move 10 steps” so XO knows whether the issue is with movement amount or direction.score = 2, but it should be 3.”x=120, y=-80 but ends up at x=120, y=-40.”cat-idle, cat-run-1, cat-run-2” so XO knows the exact names to reference in the code it writes.Think of it this way: XO can read anything you put into the chat, but it cannot see your project for free. Every concrete number or name you paste is one less thing it has to guess.
“It doesn’t work” is one of the hardest prompts for XO to answer, because it has no idea what “work” even means to you. The fix is to split your description into two parts: what you expected, and what actually happened. This turns a complaint into a diagnosable report.
When XO has both pieces, it can jump straight to comparing them and looking for the cause of the difference.
Examples in Creaticode:
This pattern works for art and story bugs too, not just logic:
If you can, add what you already tried as a third line — that saves XO from suggesting the same thing again.
When XO gives you code or an explanation and something is off, resist the temptation to just say “that’s wrong” or “try again”. Those prompts give XO no information — it has to guess what you didn’t like and usually guesses differently than what you meant. Instead, name the specific part that’s wrong and, if you can, say which direction to adjust.
This is a key skill because you will go back and forth with XO a lot. Clear feedback shortens the loop from ten tries to two.
Examples:
when space key pressed block should be on the Player sprite, not on the Stage. Please move it.”The pattern is: what is off → how to adjust. Even pointing out just one of the two is much better than none.
Sometimes you and XO are both stuck — neither of you knows why the code misbehaves. Rather than guessing, you can tell XO to add a small piece of diagnostic code that will reveal what’s happening. This is what real programmers do when they debug.
A diagnostic action asks XO to insert something like a print statement, a log, or a temporary visual signal, and then report back what it shows.
Examples in Creaticode:
say block inside the forever loop that shows the x-position every second, so we can see if the x-value is changing.”say bubble every time an enemy is hit, including the new score value, so we know when it’s being updated.”After XO adds the diagnostic, run your project, look at what appears, and report the values back. With real data in hand, XO can usually point at the real cause quickly.
By default XO writes for a general programmer — which can be too technical if you’re new, or too childish if you’re advanced. You can reshape its answers by telling it who is listening and what voice you want.
This is especially useful for explanations, tutorials, and in-game dialogue.
Examples:
broadcast block works like I’m 10 years old, no code, just words.”You can also flip this for your own notes:
The more specific your tone request, the more XO’s output will match the vibe you want on the first try.
When the task is big or complicated, don’t let XO jump straight to building. Asking for a plan first forces it to think through the pieces before writing code. You can read the plan, catch mistakes early, and correct course before any blocks are placed — which saves a lot of time compared to fixing a half-built project.
This is especially valuable in agent mode, where XO actually modifies your project.
Examples:
You can then iterate on the plan itself (“step 3 should come before step 2”, “I don’t want a new variable, reuse the existing coins”) and only proceed when you’re happy. This is often the single biggest quality boost for medium-to-large requests.
XO sometimes does more than you asked for — helpfully refactoring sprites you didn’t mention, renaming variables, or tidying up scripts. To prevent surprises, tell it both what you want changed (positive scope) and what you explicitly do not want touched (negative scope).
This is especially important when you have work you’re proud of and don’t want disturbed.
Examples:
07 instead of 7). Don’t change how the score is calculated.”Slime. Don’t modify the existing Ghost enemy at all.”A useful phrase: “Everything else in the project must remain unchanged.” This tells XO clearly that the rest of the work is off-limits.
If you want a design choice — not just a fix — ask XO for two or three options rather than a single answer. You can then pick the one that fits best, or mix ideas from several. This keeps you in the driver’s seat instead of accepting the first solution XO happens to produce.
Examples:
Getting options is a great way to learn, too. Seeing two solutions side-by-side teaches you more about trade-offs than seeing just one.
After XO builds or explains something, you can ask it to review its own work. This often catches bugs or edge cases that XO would otherwise miss, because the act of reviewing uses a different kind of thinking than the act of building.
Think of it as asking XO to put on its QA hat after putting down its builder hat.
Examples:
Self-check questions lead to better final results because XO often spots issues and fixes them before you even have to run the project.
Sometimes you’re not sure exactly what detail XO needs to do a good job. Instead of guessing and then revising, flip the conversation — tell XO to ask you the questions it needs answered before it starts. This works because XO usually knows better than you which missing details will most affect the result.
Examples:
Answering three short questions up front is much faster than rebuilding after a misunderstanding.
Sometimes describing what you don’t want is easier than describing what you do. A negative example can instantly rule out a wide family of solutions and point XO toward the right neighborhood.
This technique is especially useful for art direction, style, and game feel.
Examples:
Combining a negative example with a positive one (“not X, more like Y”) is an even stronger prompt.
Big requests often lead to big, messy results. If you ask XO to “build a whole RPG” in one shot, it will skip details and make many choices you might disagree with. Instead, split the work into small steps, confirm each one, and only then move on.
This is how experienced programmers build anything non-trivial — it’s not a shortcut, it’s the real method.
Examples:
An added benefit: if something breaks, you’ll know it was introduced in the most recent small step, which makes debugging much easier.
Before XO builds something, agree on how you’ll know it’s done. Without a clear finish line, XO may keep adding features you didn’t ask for, or stop too early and miss something important. A success criterion is a short description of the final behavior you’re aiming for.
Examples:
Writing the success criterion forces you to think about exactly what you want, which is half the work of getting a good answer.
If you’ve already tried something and it didn’t work, tell XO what you tried and what went wrong. This prevents XO from suggesting the same thing again and often helps it jump straight to the real cause.
It also signals that you’ve done some thinking, which shifts the conversation from “explain from scratch” to “help me debug my current approach.”
Examples:
glide 1 sec to x: 100 y: 50 block, but the Cat snaps to the destination instantly instead of moving smoothly. What am I missing?”if touching Enemy inside a forever loop. The Cat takes damage correctly, but then the game freezes for a second before continuing. I suspect something about loop timing.”jumping to track mid-air state, but the Cat sometimes double-jumps anyway. I don’t understand why.”stop all sounds, but then the scene-2 music won’t start either.”A short “here’s what I did, here’s what broke” is one of the fastest ways to get high-quality help — and it’s exactly how real developers ask each other for help too.
can you please be more specific in describing the issue? Also please add some screenshots. It will make it much easier to find the issue.
Thank you
We have added a new toggle in the “Edit” menu:

When you turn it on, it will keep this project to run at 30fps. It is saved as part of the project’s property so othes will run it at 30fps as well. Please give it a try.
By default MIT Scratch runs at 30fps and CreatiCode at 60fps. We are going to release a fix soon.
what is the bug? you can’t open that specific project or you can’t play any project?
We will look into it and fix it. Please post the project link here. Thank you
hi, we can see your game at the given URL:

Maybe you need to do a hard refresh of the page? Ctrl + Shift + r keys
Thank you for the suggestions. These are definitely useful tools, but our user base is mostly k-12 students learning to code, so these tools might be a bit too advanced.
For example, for 3D rigging, it is a fairly complex task, and there are already tools like Blender for such tasks. So what would be the benefit to reimplementing these tasks on our platform?
Thank you for the suggestion. We’ll research how to implement this correctly. As you know the layers are dynamic and relative, so the result might be unexpected.
That usually represents a block that’s no longer supported.
When you publish or share the project, others can see it in the Explore page and run it the same way. The only difference is whether others can look inside or remix it.
Hi, can you please give an example project?
And are you saying it is running too fast on CreatiCode compared to MIT Scratch? We aim to make sure existing MIT Scratch projects run the same way on CreatiCode, so if that’s not happening for some projects, we will fix it.
You should be able to generate it. Please post the prompt and a screenshot of the error.
We will look into that setting.
Also, if you do not want others to remix your project, you can “publish” it rather than “share” it.
The reason was there was an error or warning but the system did not have the French translation for it. But we can’t tell which message was intended exactly. We did try your prompt in French mode and it should work now.
Thanks for letting us know. This issue should be resolved now.