look at doBrodcast's source code
That is Javascript, not Snap!
you can emulate it
No, you really can't. Not in this case, anyways.
Trust me, I have modified Snap! to hell and back a multitude of times, I have a bit of knowledge of how the program works internally.
you can
make a true returning hat with the tag block and put it as the input to the brodcast bock i made
{on recv::hat}::hat tag: brodcast hat::control report <<true>> brodcast ((on recv::hat) @>) @> @:> ::control on recv::hat say [Hello!]
What?
that tag block just prevents it from running when its not called by the brodcast block
There is no tag block
he's saying there's no block in the Snap! editor or any library labeled "tag: broadcast hat," and because you didn't make it a script pic, we have no idea what it's supposed to do
make sure this block of code is secure and then paste it into the console and/or use tampermonkey to run this every session
to paste into console
SnapSerializer.prototype.loadBlocksModel = function (
model,
targetStage,
forPreview
) { // public - answer a new dictionary of custom block definitions
// represented by the given already parsed XML Node,
// forPreview is an optional Boolean flag that prevents customized
// primitives from being installed when merely previewing the blocks
// of a library before actually importing them
var stage, varModel, varFrame, localVarFrame;
this.scene = new Scene();
this.scene.targetStage = targetStage; // for secondary block def look-up
stage = this.scene.stage;
model.palette = model.childNamed('palette');
if (model.palette) {
this.loadPalette(model.palette).forEach((value, key) =>
SpriteMorph.prototype.customCategories.set(key, value)
);
}
model.removeChild(model.palette);
this.loadCustomBlocks(stage, model, true); // global
this.populateCustomBlocks(stage, model, true); // global
model.local = model.childNamed('local');
if (model.local) {
this.loadCustomBlocks(stage, model.local, false); // not global
this.populateCustomBlocks( stage, model.local, false); // not global
}
model.primitives = model.childNamed('primitives');
if (model.primitives && !forPreview) {
this.loadCustomizedPrimitives(stage, {children:
model.primitives.children.filter((def)=>SpriteMorph.prototype.blocks[def.attributes.selector])
}, targetStage);
var customSel = {children:
model.primitives.children.filter((def)=>!SpriteMorph.prototype.blocks[def.attributes.selector])
}
this.loadCustomBlocks(stage, customSel, true); // global
this.populateCustomBlocks(stage, customSel, true); // global
}
varModel = model.childNamed('variables');
if (varModel) {
varFrame = new VariableFrame();
this.loadVariables(varFrame, varModel);
}
varModel = model.childNamed('local-variables');
if (varModel) {
localVarFrame = new VariableFrame();
this.loadVariables(localVarFrame, varModel);
}
this.objects = {};
stage.globalBlocks.forEach(def => def.receiver = null);
this.objects = {};
this.scene = new Scene();
this.mediaDict = {};
return {
global : stage.globalBlocks,
local : stage.customBlocks,
data : varFrame,
localData : localVarFrame
};
};
then drag this(this is an edge case)
then you can use the blocks that are imported
No? If you're going to use modded Snap, you're entirely on your own here
launch the hats of the specified requirements
??
these blocks
warp{ for each (script) in (call(((my [scripts] ) @>) of (put any sprite here))@:>) { if <requirements (script) > { launch (script) @:> }} }
replace the requirements block with with any check
(optional) replace my scripts with something that gets all the scripts)