In fact, this release was supposed to be released next month, but since there're lots of Extension API changes in 3.1.4, we decided to bring forward this important sub-release. We recommend that all scratchers upgrade, as this version also fixes a number of issues that existed in previous versions.
✨ What changed
📎 Copy blocks to clipboard
We have added the ability to copy blocks (or block screenshot) to the clipboard and paste blocks from the clipboard. This feature will also help you to quickly modify blocks without changing the project.json.
(Contributor: SimonShiki)
🇨🇵 French support
We've added a language which is spoken by approximately 280 million people to this release. Special thanks to the translator from France!
(Contributor: Senievol)
🌈 Add color detection block
This newly added block can be used to obtain colors accurate to a certain coordinate, which is very useful for some pen-related projects.
(Contributor: SimonShiki)
🎨 Paint editor improvements
This release adds support for transparency and numeric color editing.
(Contributor: SparrowHe)
🔧 Store settings in project
You can now store settings like FPS in your project. You can enable this feature in settings (disabled by default).
(Contributor: SimonShiki)
💬 Miscellaneous
- Support for updating extensions from the extension store (Contributor: SparrowHe, SimonShiki)
- Redrawing a lot of extension banners (Contributor: Zerlight)
- Add edit pen drawable layers blocks (Contributor: SimonShiki)
- Add "get array length" and "edit array's value" blocks (Contributor: SimonShiki)
- Modified the style of the text input to be square (Contributor: SimonShiki)
🔌 Extension Stuff
Block filter
ClipCC provides support for filter since version 3.1.4. Here's an example:
api.addBlock({
opcode: 'example.block',
type: type.BlockType.COMMAND,
messageId: 'example.block',
categoryId: 'example.category',
function: () => {...},
option: {
// Only available in stage
filter: type.FilterType.STAGE
}
});
See documentation
(Contributor: java30433)
Dynamic menu
param: {
PARAMETER: {
type: type.ParameterType.STRING,
menu: () => {
// return sprites
const vm = api.getVmInstance();
const sprites = [];
for (const targetId in vm.runtime.targets) {
if (!vm.runtime.targets.hasOwnProperty(targetId)) continue;
const name = vm.runtime.targets[targetId].sprite.name;
sprites.push([name, name]);
}
return sprites;
},
default: 'rainbow'
}
}
See documentation
(Contributor: java30433)
Branch block
ClipCC provides support for menu input since version 3.1.4. Here's the definition:
api.addBlock({
opcode: 'example.if',
type: type.BlockType.COMMAND,
messageId: 'example.if',
categoryId: 'example.category',
branchCount: 1,
param: {
COND: {
type: type.ParameterType.BOOLEAN
}
},
function: (args, util) => {
// If the condition is true, start the branch.
if (!!args.COND) util.startBranch(1, false);
}
});
See documentation
(Contributor: AlexCui)
🔧 Bug Fix
- Fix the problem that the extension switch is out of sync (Contributor: SparrowHe)
- Fix the problem that the clipCC extension monitor label is not displayed correctly (Contributor: SparrowHe)
- Fixed the issue that the pop "proccode was duplicated" when clicking "OK" when the editing function did not modify the proccode (Contributor: AlexCui)
- Fixed two issues where variable/list data was null after serialization (Contributor: SimonShiki)
- Fixed the problem that the sound could not be deleted normally (Contributor: SparrowHe)
- Fix the problem that the return type is incorrect after modifying the JSON (Contributor: SimonShiki)
- Fixed an issue where the direction block from... to... would report an error with negative values (Contributor: SimonShiki)
- Fix the problem that the operating system blocks cannot detect the Windows 11. (Contributor: SimonShiki)
- Fixed an issue where the block popup could not copy text (Contributor: SimonShiki)
- Fixed menu row height issue caused by blank names (Contributor: AlexCui)
- Fixed list reporter text not centered (Contributor: SparrowHe)
- Fixed an issue where the block popup ignored line breaks and spaces (Contributor: SimonShiki)