コマンド/Press to code/QandA保存用ページ9

Last-modified: 2025-11-30 (日) 15:53:09

各ページはサイドバーから

向いてる方向

みかん (2025-09-02 (火) 21:17:57)

プレイヤーの向いてる方向とかを確かめるapiとか方法はありますか?


  • これです -- けんたき 2025-09-02 (火) 21:55:05
    const facing = api.getPlayerFacingInfo(playerId);
    const dir = facing.dir;
    dirにベクトルが入ります
  • yeeeeee thx😀 -- みかん 2025-09-03 (水) 16:20:26

Marisakawaii28が実行したかどうか

yuki9125 (2025-09-02 (火) 18:56:45)

Marisakawaii28さんがコードを実行したら、
あなたは鯖主ですと表示し、
その他の人が実行したら
あなたは鯖主ではありません!!!と表示し、
9999ダメージを与えるコードを作ってくれませんか?


  • かなり難しいですが作ってみます -- けんたき 2025-09-02 (火) 19:05:34
if(api.getEntityName(myId) === "Marisakawaii28"){
  api.sendMessage(myId, "あなたは鯖主です")
}else {
  api.sendMessage(myId, "あなたは鯖主ではありません!!!")
  o = api.getHealth(myId)
  api.setHealth(myId, 0, myId, false)
}
  • コードブロック内に関数を配置する方法なら今すぐ出せるけどどうする? -- けんたき 2025-09-02 (火) 19:07:45
  • 難しいんかな -- 2025-09-02 (火) 19:08:04
  • 9999ダメージはむずかいもね、、9999ダメージ与えるより0HPにしたほうがいいと思った。だめだったら言って。 -- 2025-09-02 (火) 19:10:37
    onPlayerClick = (playerId, wasAltClick) => {
      const targetblock = api.getPlayerTargetInfo(playerId);
      if(!targetblock)return;
    
      if(api.getBlock(...targetblock.position) === "Code Block"){
        const blockdata = api.getBlockData(...targetblock.position);
    	if(blockdata?.persisted?.shared?.text){
    	  if(api.getEntityName(playerId) === "Marisakawaii28"){
    		api.sendMessage(playerId, "あなたは鯖主です");
    	  }else{
    		api.sendMessage(playerId, "あなたは鯖主ではありません!!!")
    		api.killLifeform(playerId);
    	  }
    	}
      }
    }
  • 難しく考えすぎてました。これでいけます -- けんたき 2025-09-02 (火) 19:20:16
  • ちなみにコード実行防止はonPlayerAttempt~Actionでreturn "preventAction"を用いたり、即kickしたり,,,。いろいろ試しましたができないので、codeblock本体に防止機構を導入するしかないでしょうね -- ryoku_ 2025-09-02 (火) 20:49:25
  • わざと割り込みを発生させるのはどう? -- けんたき 2025-09-02 (火) 23:18:55
  • 例えばwhile(true){}とか -- けんたき 2025-09-02 (火) 23:20:42
  • ...えっと、言いにくいんですが......コードブロック一つだけに導入しようとだけ考えてたんです...すみません...... -- yuki9125 2025-09-03 (水) 08:37:31
    if(api.getEntityName(myId) !== "Marisakawaii28")throw new Error("あなたは鯖主ではありません");
  • throwでエラーを投げて止めてます。これを一番上に置いてください -- けんたき 2025-09-03 (水) 13:47:48

press to messageのコード

yuki9125 (2025-09-02 (火) 18:53:35)

press to messageみたいにテキストを表示するコードってありますか?


api.setClientOption(myId, "middleTextUpper", `[Lobby Msg] ロビーメッセージ`)
  • これだと画面下から文字が消えないのですが... -- yuki9125 2025-09-02 (火) 21:44:43
    api.setClientOption(myId, "`)
  • これで消えます

名前の横の奴

carubo (2025-09-02 (火) 16:35:45)

chatでしゃべるとき名前の横に役職みたいなのがでるようにしたいです!
できれば黄色で役職名書かれるようにしたいです
どういうコードならいけますか?


const ROLES = {
  "役職名": ["プレイヤー1", "プレイヤー2"],
  "役職名": ["プレイヤー1", "プレイヤー2"],
  "役職名":   ["プレイヤー1", "プレイヤー2"],
  // 追加してOK
};

function getRoleName(playerName) {
  for (const role in ROLES) {
    if (ROLES[role].includes(playerName)) return role;
  }
  return "役職なし";
}

onPlayerChat = (playerId, text) => {
  const name = api.getEntityName(playerId);
  const role = getRoleName(name);

  const msg = [
    { str: `【${role}】`, style: { color: "yellow" } },
    { str: `${name}: ` },
    { str: text }
  ];

  api.broadcastMessage(msg);
  return false;
};
onPlayerChat=(playerId, message) => {
  return ["[あ]"]
}
  • CustomTextStylingを返すと勝手にprefixがつく -- けんたき 2025-09-02 (火) 18:44:46
  • ちなみにトライブも使える -- けんたき 2025-09-02 (火) 18:45:22
  • ありがとうございます -- carubo 2025-09-02 (火) 21:35:31
  • これってconst ROLESにプレイヤー2書かなくても作動しますか? -- 2025-09-02 (火) 21:42:18
  • 書かなくても作動します。 -- 2025-09-03 (水) 15:00:37

Q&Aに関する質問

yuki9125 (2025-09-01 (月) 21:09:58)

Q&Aは「コード入力代行サービス」みたいな感じになっているのですが、いいんですか?


  • いいんですよ? -- 2025-09-01 (月) 21:17:18
  • ありがとうございます!安心しました。 -- yuki9125 2025-09-01 (月) 21:45:58
  • まぁ相当「めんどくさいから」だったら流石にあれですけど、わからないとかだったら全然お気軽にどうぞ! -- ryoku_ 2025-09-02 (火) 06:07:40

musicを全員に聞かせたい

yuki9125 (2025-09-01 (月) 19:59:14)

api.setClientOption(myId, "music", "Juhani Junkala [Retro Game Music Pack] Level 1");
これって押した本人にしか聞こえないんですか?
全員に聞かせたいのですが


pIds = api.getPlayerIds()
for(pId of pIds) {
	api.setClientOption(pId, "music", "Juhani Junkala [Retro Game Music Pack] Level 1");
}
  • これでできます。 -- ryoku_ 2025-09-01 (月) 20:01:26

話す人によってチャットの色が変わるように

yuki9125 (2025-09-01 (月) 19:36:20)

yuki9125が話したら#40e0d0の色で
チャットが出るようにしてください


  • Marisakawaii28さんが話したら##ffff00で -- 2025-09-01 (月) 19:38:57
function onPlayerChat(p, c){
  let n = api.getEntityName(p)
  if(n === "yuki9125"){
    api.broadcastMessage(`[${n}]: ${c}`, {color:"#40e0d0"})
    return false;
  }else if(n === "Marisakawaii28"){
    api.broadcastMessage(`[${n}]: ${c}`, {color:"#ffff00"})
  return false;
/*ここのしたから
  }else if(n === "名前"){
    api.broadcastMessage(`${n}]: ${c}`, {color:"色"})
    return false;
こういうふうにつなげていけばよい (この上の例文は出ないので大丈夫。やるときは /と*と*と/は消してok*/
  }else {
    return true;
  }
}
  • 話す人の名前分かるようにしてください -- yuki9125 2025-09-01 (月) 20:05:24
  • わかるようにした -- 2025-09-02 (火) 07:25:31
  • ありがとうございます!もし今後さらに別の人も色を変えたくなったらコードをどのように書き換えればいいですか? -- yuki9125 2025-09-02 (火) 08:00:29

なぜか機能しない助けて

川本さん (2025-09-01 (月) 18:20:52)

function onBlockStand(playerId, x, y, z, blockName) {
    if (blockName === "Block of Moonstone") {
        api.setVelocity(playerId, 0, 15, 0)
    }
};

function onBlockStand(playerId, x, y, z, blockName) {
    if (blockName === "Block of Diamond") {
        api.setVelocity(playerId, 0, 30, 0)
    }
};

このcodeをworldcodeで打つとなぜかダイヤモンドブロックの方が機能しない
だれかなぜ機能しないのかどうやったら機能するようになるのか教えてほしい


  • 2つやってるから。まとめなよ。 -- 2025-09-01 (月) 18:25:30
    function onBlockStand(pId, x, y, z, blockName) {
        if (blockName === "Block of Moonstone") {
            api.setVelocity(playerId, 0, 15, 0)
        }
        else if (blockName === "Block of Diamond") {
            api.setVelocity(playerId, 0, 30, 0)
        }
    };
  • こうだねー -- ryoku_ 2025-09-01 (月) 19:47:43
  • 吹っ飛ばせたいならapplyImpulseのほうが適してると思う -- けんたき 2025-09-01 (月) 19:48:29
  • setVelocityなんかこれ効きが悪いんだよね。 -- ryoku_ 2025-09-01 (月) 20:01:46

魔法コマンドを知りたい

sanu (2025-08-31 (日) 19:47:14)

魔法コマンド
何かのアイテム(例:桑など?)をもって右クリックをしたら前方にもやもやが出て当たったらだめ-じみたいなのってできますか?


  • 魔法サバイバルのことを言ってるんかな...? -- けんたき 2025-08-31 (日) 20:37:15
  • 思ったぁ、、 -- 2025-08-31 (日) 20:48:41
  • 知ってるけど教えないよ -- けんたき 2025-08-31 (日) 20:58:01
  • ここQandAなんだから、答えないのならコメントしないでください。ここにコメントしていいのは答える人だけです。実際あなたのような無駄なコメントも含めてページの容量がパンパンになっているのですから。 -- ゾンビ君 2025-08-31 (日) 21:22:51
  • これで満足ですかね?笑
    /* MIT License (c) 2025 [kentaki]. Permission granted to use, copy, modify, and distribute with credit. */
    const hitMobs=[];function length(t){return Math.sqrt(t[0]**2+t[1]**2+t[2]**2)}function normalize(t){let e=length(t);return 0===e?[0,0,0]:[t[0]/e,t[1]/e,t[2]/e]}onPlayerClick=(t,e)=>{let i=api.getHeldItem(t);if(!i||!i.name||!e)return;let{camPos:o,dir:r}=api.getPlayerFacingInfo(t),$=normalize(r),n=[...o],l=[o[0]+10*$[0],o[1]+10*$[1],o[2]+10*$[2],];api.playParticleEffect({dir1:[...$],dir2:[...$],pos1:n,pos2:l,texture:"critical_hit",minLifeTime:.2,maxLifeTime:.6,minEmitPower:15,maxEmitPower:15,minSize:.25,maxSize:.35,manualEmitCount:5,gravity:[0,-10,0],colorGradients:[{timeFraction:0,minColor:[60,60,150,1],maxColor:[200,200,255,1]},],velocityGradients:[{timeFraction:0,factor:1,factor2:1},],blendMode:1});let a=api.getMobIds();for(let m=1;m<=10;m++){let _=[Math.floor(o[0]+$[0]*m),Math.floor(o[1]+$[1]*m),Math.floor(o[2]+$[2]*m),];for(let f of a){let c=api.getUnitCoordinatesLifeformWithin(f);for(let d of c)d[0]!==_[0]||d[1]!==_[1]||d[2]!==_[2]||hitMobs.includes(f)||hitMobs.push(f)}}hitMobs.forEach(e=>{api.attemptApplyDamage({eId:t,hitEId:e,attemptedDmgAmt:15,withItem:"Diamond Sword"})}),hitMobs.length=0};
  • そのこーど、Error in world code init: InternalError: interruptedでてできなかったぞ、、w -- yuuto 2025-09-01 (月) 16:57:24
  • コード更新したからこっち使って -- けんたき 2025-09-01 (月) 17:25:43
  • これがモブに当たるとエラー出る()ApiErrorだって() -- 2025-09-01 (月) 18:35:51
  • 修正したよー -- けんたき 2025-09-01 (月) 19:51:37
  • こういうのってかっこ悪いね,,, -- ゾンビ君 2025-09-03 (水) 22:55:15
  • へえ -- 2025-09-22 (月) 13:56:25

右上に文字を出したい

992UPA (2025-08-31 (日) 17:11:24)

右上に黒と何かの色のところに文字が出てるのを見たことがあるんですがどうやったら表示できますか?チャット欄じゃなかったです


a = "text";a+= "And";a+="Icon";a+="Color"

api.sendTopRightHelper(myId, "hammer", `Welcome	${api.getEntityName(myId)}`,
       {duration: 4, width: 320, height: 200,
		color: "#00000F", iconSizeMult: 6,[a]: "#00000F",
		fontSize: "15px"}
  )
  • これです。 -- ryoku_ 2025-08-31 (日) 17:15:47
  • admin増やすにはどうすれば... -- yuki9125 2025-09-01 (月) 18:24:29
  • エラー出ます... -- 2025-09-02 (火) 14:02:15
  • 「エラーが出ます」だけじゃ何もわからないぞ?ちゃんとなんのエラーがでたか言わないと -- けんたき 2025-09-02 (火) 14:52:28
  • textAndIconColorの規制のためのエラーだね。 -- yuuto 2025-09-02 (火) 17:53:41

キルをしたらチャットで警告、繰り返したらbanするコード

yuki9125 (2025-08-31 (日) 16:28:20)

キルをすると毎回チャットで、
「キルはルール違反です。繰り返すとbanされる可能性があります。」と表示され、
5回のキルでbanされるようにできませんか?
必須事項
・ownerやco-ownerによるキルは無視
・間違い判定をしないようにする
・重くならないようにする
希望事項
・15分間同じ鯖に居続けたらキルを1回なかったことにできる
・banの時チャット欄に「〇〇さんがbanされました。」と表示する


  • 希望事項は無理なら追加しなくてもいいですが、必須事項は必ず追加してください。難しいお願いかもしれませんがお願いします。 -- yuki9125 2025-08-31 (日) 16:30:05
    admins = ["yuki9125","Admin二人目"]
    onPlayerKilledOtherPlayer = (killer, death, damageDealt, withItem) => {
    	killerName = api.getEntityName(killer)
    	if(!admins.includes(killerName)) {
    		api.sendMessage(killer,[{str :"キルはルール違反です。繰り返すとbanされる可能性があります。",style:{color:"red"}}])
    		api.setMoonstoneChestItemSlot(killer,0,"Fireball Block",checkItem(killer)+1,{})
    
    	}
    }
    
    onPlayerJoin = (pId, fromGameReset) => {
    	api.log(checkItem(pId))
    }
    
    function checkItem (pId) {
    	pName = api.getEntityName(pId)
    	i = api.getMoonstoneChestItemSlot(pId,0)
    	if(i != null) {
    		if(i.name =="Fireball Block"&&!admins.includes(pName)) {
    			if(i.amount >= 5) {
    				api.kickPlayer(pId,"あなたは殺人をしすぎました")
    				api.broadcastMessage(`${pName}は殺人を繰り返したためbanされました..`)
    			}else {
    				return(i.amount)
    			}
    		}else {
    			return false
    		}
    	}else {
    		return(0)
    	}
    }
    //Dungeonsより一部変更
    onPlayerMoveInvenItem = (playerId, fromIdx, toStartIdx, toEndIdx, amt) => {
    if(api.getItemSlot(playerId, fromIdx)["name"] === "Fireball Block"){
    return "preventChange"
    }
    }
    
    onPlayerDropItem = (playerId, x, y, z, itemName, itemAmount, fromIdx) => {
    if(api.getItemSlot(playerId, fromIdx)["name"] === "Fireball Block"){
    return "preventDrop"
    }}
  • killの途中で抜けるとカウントはリセットするようにしています。もしも抜けてもカウントを続けたいなら言ってください。 -- ryoku_ 2025-08-31 (日) 16:57:19
  • 抜けてもカウントをそのままにしてください。 -- yuki9125 2025-08-31 (日) 17:01:08
  • はい... -- ryoku_ 2025-08-31 (日) 17:02:51
  • できました♥。 -- ryoku_ 2025-08-31 (日) 17:13:56
  • 迅速にご対応いただき、誠にありがとうございました。難しいお願いをしてしまい、申し訳ございませんでした。 -- yuki9125 2025-08-31 (日) 17:20:02
  • この鯖では、ムーンストーンチェストを使用しないようにしてください。(このコードを見て思ったので一言) -- yuuto 2025-08-31 (日) 17:39:37
  • あー。じゃあそこも対策入れるかな。 -- ryoku_ 2025-09-01 (月) 06:18:50
  • 対策入れた。 -- ryoku_ 2025-09-01 (月) 06:21:55

持ってるものにエンチャントレベルを増やすコード

992UPA (2025-08-31 (日) 15:38:08)

持ってる武器や防具のエンチャントのレベルを追加する(増やす)コードを教えて下さい
お願いします


i = api.getHeldItem(myId)
if(i != null) {
	ens = i.attributes.customAttributes.enchantments
	for(en in ens) {
		ens[en] = ens[en]+10000000
		aura = api.applyAuraChange(myId,-100)
	}

	slotI = api.getSelectedInventorySlotI(myId)
	api.setItemSlot(myId,slotI,i.name,1,i.attributes)
}
  • これで尋常じゃない増え方で装備が強くなるはずです。ただしあらかじめエンチャントをしておいてくださいね! -- ryoku_ 2025-08-31 (日) 16:26:01
  • ありがとうございます!経験値を減らしてようにはできますか? -- 2025-08-31 (日) 16:58:15
  • 更新しました!これで減るようになります。でもゲームバランスは悲鳴を上げていますね!w -- ryoku_ 2025-08-31 (日) 17:02:38

  • それは、~~~~(~~~~~~)にするとできますよ※これはコメント例です -- Comment例 2025-05-18 (日) 07:03:29
  • ベットウォーズ以外でShopkeeperを出す完成形のコードを教えてください。 -- King_Kazuma 2025-07-28 (月) 00:40:36
  • すみません違うところに投稿してしまいました...。お詫び申し上げます。 -- King_Kazuma 2025-07-28 (月) 00:42:25
  • 死んだ瞬間復活するコマンド教えてください -- Hamoode_G 2025-08-07 (木) 13:23:59
  • アイテムに名前とエンチャントをつけてプレイヤーに付与するコマンド教えて下さい -- noyu 2025-08-13 (水) 15:01:42
  • みんな、、、なぜここに質問する、、、投稿すればいいのに、、ちなみにここにコメントしたものはほぼ返信来ないよ。 -- yuuto(このページを作った人) 2025-08-16 (土) 21:25:00
  • 透明化のコードを教えてください -- nkai2312 2025-08-31 (日) 16:28:23

ClientOptionのmusic

yuuto (2025-08-31 (日) 15:33:56)

ClientOptionにmusicってあるんですよ
それで音楽流したくて
highway-1-retro-gaming-version: Accessible on lonepeakmusic's bandcamp
BloxdのCreditにこう書いてあるやつです。
https://lonepeakmusic.bandcamp.com/track/highway-1-retro-gaming-version
このサイトの曲です
コードお願いします


  • codeでは無理っすね。拡張機能でやれ。 -- ryoku_ 2025-08-31 (日) 16:12:41
  • 音出すcodeってなかったっけ -- aaa_ 2025-08-31 (日) 16:26:44
  • playSoundで再現、、、それはまじで人間やめなきゃかもしれない -- ryoku_ 2025-08-31 (日) 16:30:12
  • クライアントオプションにmusicを変える設定があります
    api.setClientOption(myId, "music", "以下のリストから選んで");
    music = [
      "Adigold - A Place To Be Free",
      "Adigold - Butterfly Effect",
      "Adigold - Dreamless Sleep",
      "Adigold - Frozen Pulse",
      "Adigold - Frozen Skies",
      "Adigold - Healing Thoughts",
      "Adigold - Here Forever",
      "Adigold - Just a Little Hope",
      "Adigold - Just Like Heaven",
      "Adigold - Memories Remain",
      "Adigold - Place To Be",
      "Adigold - The Riverside",
      "Adigold - The Wonder",
      "Adigold - Vetrar (Cut B)",
      "Awkward Comedy Quirky",
      "battle-ship-111902",
      "cdk-Silence-Await", "corsairs-studiokolomna-main-version-23542-02-33",
      "ghost-Reverie-small-theme",
      "happy",
      "Heroic-Demise-New",
      "I-am-the-Sea-The-Room-4",
      "Juhani Junkala [Retro Game Music Pack] Ending",
      "Juhani Junkala [Retro Game Music Pack] Level 1",
      "Juhani Junkala [Retro Game Music Pack] Level 2",
      "Juhani Junkala [Retro Game Music Pack] Level 3",
      "Juhani Junkala [Retro Game Music Pack] Title Screen",
      "LonePeakMusic-Highway-1",
      "Mojo Productions - Pirates",
      "Mojo Productions - Sneaky Jazz",
      "Mojo Productions - The Sneaky",
      "Mojo Productions - The Sneaky Jazz",
      "progress",
      "raise-the-sails-152124", "ramblinglibrarian-I-Have-Often-T",
      "Slow-Motion-Bensound",
      "snowflake-Ethereal-Space",
      "the-epic-adventure-131399",
     "The Suspense Ambient",
      "TownTheme"
    ]
    • けんたき 2025-08-31 (日) 16:56:58
  • あるけど、musicに対する有効な値あったっけ... -- ryoku_ 2025-08-31 (日) 16:57:49
  • これでできるんだけど何秒か立ったら勝手に治るんだよね -- けんたき 2025-08-31 (日) 17:07:10
  • こういうのあったんだ! -- ryoku_ 2025-08-31 (日) 17:16:11
  • tick制御で永久再生できそうだけどもうページ容量96%だからぎりぎりかな... -- ryoku_ 2025-08-31 (日) 17:18:53
  • 音楽流す→リセットされる→音楽流す→最初から流れる→リセットされるの繰り返しよ -- けんたき 2025-08-31 (日) 17:25:52
  • ありがと -- yuuto 2025-08-31 (日) 17:41:38
  • ちなみにhighway-1-retro-gaming-version: Accessible on lonepeakmusic's bandcampってのはどれだろ() -- yuuto 2025-08-31 (日) 17:42:38
  • あ、見つけた。LonePeakMusic-Highway-1だ。 -- yuuto 2025-08-31 (日) 17:45:47
  • ちなみにtickで永久再生できた。曲終わっても流れた。 -- yuuto 2025-08-31 (日) 18:29:45
  • えがち? -- けんたき 2025-08-31 (日) 21:03:19
function tick(){
  for(let id of api.getPlayerIds()){
    api.setClientOption(id, "music", "LonePeakMusic-Highway-1")
  }
}

歩いた場所が

大魔王マグロ (2025-08-31 (日) 14:37:00)

歩いた場所が岩盤になるcodeが欲しい


function tick(){
    for(let id of api.getPlayerIds()){
        xyz = api.getPosition(id)
        api.setBlock(x[0], x[1] - 1, x[2], "Bedrock")
    }
}

変数

神 (2025-08-31 (日) 10:03:28)

変数ってなに


  • 変数というのは、「val」など値を代入することができるものを指します。let val = 10などでいくらでも定義できます。constは定数です。 -- ryoku_ 2025-08-31 (日) 10:42:44
  • 詳しくはjavascriptとして調べてください。ここはあくまでPress to codeなので -- ryoku_ 2025-08-31 (日) 10:43:34
  • これってなんのエフェクトが付くかってランダムにできないですかね? -- Ragu 2025-08-31 (日) 15:42:11
  • コメントの位置ずれてませんかね... -- ryoku_ 2025-08-31 (日) 16:06:16

自分の機種がモバイルかパソコンかの判定をしてください

yuki9125 (2025-08-31 (日) 08:24:18)

自分がモバイルなら、「あなたモバイルですね」というメッセージを
自分がPCなら、「あなたPCですね」というメッセージを
表示してください。表示するのは、コードブロック
押した本人だけでいいです。


isMobile = api.isMobile(myId)
if(isMobile){
    api.sendMessage(myId, "あなたはモバイルですねぇ")
}else {
    api.sendMessage(myId, "あなたはPCですねぇ")
}
  • まぁたっぷ操作ができるのにモバイル判定くらわないやつはいるけどね.... -- ryoku_ 2025-08-31 (日) 10:41:28
  • ノートパソコンとかね。 -- ゾンビ君 2025-08-31 (日) 13:07:21
  • 迅速な対応ありがとうございます!! -- yuki9125 2025-08-31 (日) 16:12:25

教えて、プロ!

Ragu (2025-08-30 (土) 18:25:19)

自然にスポーンするモブの中に能力がついているmobがスポーンするやつ
5体スポーンしたらその中の1体がspeed効果やDamage効果がついてるようにするってな感じです
教えて!


const Effect = [
	"Damage",
	"Damage Reduction",
	"Speed",
	"Jump Boost",
	"Haste","Frozen",
	"Hydrated",
	"Invisible",
	"Poisoned",
	"Slowness",
	"Weakness",
	"Health Regen",
	"Double Jump",
	"Heat Resistance",
	"Thief",
	"Feather Falling",
	"Rested Damage",
	"Rested Speed",
	"Rested Haste",
	"Rested Farming Yield",
	"Rested Aura"
	]

const effect = Effect[Math.floor(Math.random() * Effect.length)];
let mobSpawn =0;
onWorldSpawnMob = (mId, mobType, x, y, z, mobHerdId, playSoundOnSpawn) => {
	mobSpawn ++;
	if (mobSpawn %5 ==0) {
		mobSpawn =0;
		api.applyEffect(mId,effect,null,{})
		api.broadcastMessage(`${effect}の効果を持った${mobType}が[${x},${y},${z}]にスポーンしました`)
	}
}
  • これでどうだ! -- ryoku_ 2025-08-31 (日) 11:01:05
  • これってなんのエフェクトがつくかランダムにできないですかね? -- Ragu 2025-08-31 (日) 15:42:50
  • これでどうだい。長いって邪魔ならEffectの改行は消してもいいね -- yuuto 2025-08-31 (日) 17:55:11
  • 助かります! こういうの作りたかったんですよね -- Ragu 2025-09-01 (月) 23:48:29

モブを出してそのモブ”だけ”の設定を変えたい

匿名 (2025-08-30 (土) 17:42:26)

例えば武器を変えたり


mId = api.attemptSpawnMob("Magma Golem",thisPos[0],thisPos[1],thisPos[2],{})
api.setMobSetting(mId,"heldItemName","Super RPG")
  • ほい -- ryoku_ 2025-08-31 (日) 07:04:57
  • ありがとうございます! -- 匿名 2025-08-31 (日) 07:22:36

setTimeoutができない

カクタス (2025-08-30 (土) 15:37:00)

setTimeout(() => {console.log('2秒後に実行されます');}, 2000);これでできませんでした。
どこが間違えていたのでしょうか。
できれば訂正して書いてくれたら泣いて喜んで倒れ伏します。


  • setInterval/setTimeout/clearInterval/promise/async/awaitなどの非同期系はbloxdでは使えないようになってます -- けんたき 2025-08-30 (土) 16:57:01
  • https://discord.com/channels/804347688946237472/1341451454048899144/threads/1375278414793146368
    にてsetTimeoutを再現したコードが配布されてますよ! -- けんたき 2025-08-30 (土) 17:06:06
  • マジでありがとうございます。泣いて喜んで倒れ伏しました。 -- カクタス 2025-08-30 (土) 19:12:17

スキンの一部(腕や足)をブロックの見た目にする

すきや (2025-08-30 (土) 11:46:49)

腕や足の大きさを変えるcodeは知っていますが、スキンの一部(腕や足)をブロックの見た目にするcodeがわかりません。どなたか教えてください。


前のcodeの改良版

野生のゴリラ (2025-08-30 (土) 11:02:35)

前特定のBlockに触れるとtpさせるcodeが欲しいと言った者です
この改良として複数のワープポイント?か作りたいんですけどできますか?
Grayに触れると1 1 1
Greenに触れると2 2 2
Redに触れると3 3 3
みたいな
お願いします


const warpList = {"Gray":[1,1,1], "Green":[2,2,2], "Red":[3,3,3]}

onPlayerAttemptAltAction = (pId, x, y, z, block, targetEId) => {
	if(block.includes("Portal")) {
		portalColor = block.replace(" Portal","")

		if(warpList.portalColor !== "undefined") {
			api.setPosition(pId,warpList[portalColor])
		}
	}
}
  • 前あなたの質問に対応したものです。
    どうでしょうか。 -- ryoku_ 2025-08-30 (土) 14:31:46

神 (2025-08-30 (土) 09:21:00)

見たことあるんだけど体にブロックをつけるコマンドを教えて欲しい
見たことある雪だるまもつくってほしい


  • 返信待ってます -- 神 2025-08-31 (日) 18:21:50
  • 教えてくれた -- 神 2025-09-03 (水) 18:25:54

特定のアイテムだけドロップできないようにしたい

匿名 (2025-08-30 (土) 09:09:01)

例えば土だけはドロップできないようになってほかのアイテムはドロップできるようにするみたいなworldcode


カスタムゲーム Dungeonsより引用

onPlayerDropItem = (playerId, x, y, z, itemName, itemAmount, fromIdx) => {
if(api.getItemSlot(playerId, fromIdx)["name"] === "アイテム名"){
return "preventDrop"
 }}
  • です。 -- ryoku_ 2025-08-30 (土) 14:08:57
  • できない() -- aaa_ 2025-09-06 (土) 21:25:15

スキン変更について

sukiya (2025-08-29 (金) 07:18:04)

自分のスキンの腕や足の大きさを変えるのは知っているのですが、その見た目を変えるcodeがわかりません。誰か教えてください。


  • changePlayerIntoSkin(playerId, partType, selected)です。詳しくは他サーバーから引用をおすすめ -- ryoku_ 2025-08-29 (金) 13:24:48

    コードのサンプル

    api.changePlayerIntoSkin(playerId, Head, IronMelon)
    api.changePlayerIntoSkin(playerId, Body, IronMelon)
    api.changePlayerIntoSkin(playerId, Legs, IronMelon)

このcode教えて

匿名K (2025-08-28 (木) 15:05:07)

海外の鯖で見たんだけどホットバーの上にメッセージを出せるcodeをやってみたいので知ってる方教えてください、
一文字ずつ出せると有り難い
(あ、り、が、と、う、みたいに一文字ずつ打つやつ


コードのサンプル

function conversation(id, messages) {
  const dbId = api.getPlayerDbId(id);
  if (!timeoutRegistry[dbId]) timeoutRegistry[dbId] = [];

  // Clear any existing messages for this player
  for (let entry of timeoutRegistry[dbId]) {
    clearTimeout(entry.timeout);
  }
  timeoutRegistry[dbId] = [];

  let msgIndex = 0;

  function typeMessage(text, callback) {
    let i = 0;
    function type() {
      if (i <= text.length) {
        api.setClientOption(id, "middleTextLower", text.slice(0, i));
        const t = setTimeout(type, 50);
        timeoutRegistry[dbId].push({ msg: text, timeout: t });
        i++;
      } else {
        const pause = setTimeout(callback, 1000); // Pause before next message
        timeoutRegistry[dbId].push({ msg: "pause", timeout: pause });
      }
    }
    type();
  }

  function next() {
    if (msgIndex < messages.length) {
      typeMessage(messages[msgIndex], next);
      msgIndex++;
    } else {
      endConversation(id);
    }
  }

  next();
}

function endConversation(id) {
  const dbId = api.getPlayerDbId(id);
  if (timeoutRegistry[dbId]) {
    for (let entry of timeoutRegistry[dbId]) {
      clearTimeout(entry.timeout);
    }
    timeoutRegistry[dbId] = [];
  }
  api.setClientOption(id, "middleTextLower", "");
}
conversation(myId, [
  "メッセージ1",
  "メッセージ2",
  "メッセージ3",
  "メッセージ4"
  //このしたにつづける
]);

コードの使用例

function conversation(id, messages) {
  const dbId = api.getPlayerDbId(id);
  if (!timeoutRegistry[dbId]) timeoutRegistry[dbId] = [];

  // Clear any existing messages for this player
  for (let entry of timeoutRegistry[dbId]) {
    clearTimeout(entry.timeout);
  }
  timeoutRegistry[dbId] = [];

  let msgIndex = 0;

  function typeMessage(text, callback) {
    let i = 0;
    function type() {
      if (i <= text.length) {
        api.setClientOption(id, "middleTextLower", text.slice(0, i));
        const t = setTimeout(type, 50);
        timeoutRegistry[dbId].push({ msg: text, timeout: t });
        i++;
      } else {
        const pause = setTimeout(callback, 1000); // Pause before next message
        timeoutRegistry[dbId].push({ msg: "pause", timeout: pause });
      }
    }
    type();
  }

  function next() {
    if (msgIndex < messages.length) {
      typeMessage(messages[msgIndex], next);
      msgIndex++;
    } else {
      endConversation(id);
    }
  }

  next();
}

function endConversation(id) {
  const dbId = api.getPlayerDbId(id);
  if (timeoutRegistry[dbId]) {
    for (let entry of timeoutRegistry[dbId]) {
      clearTimeout(entry.timeout);
    }
    timeoutRegistry[dbId] = [];
  }
  api.setClientOption(id, "middleTextLower", "");
}
conversation(myId, [
  "こんにちは!",
  "私はArthurです!",
  "これからよろしくお願いします!",
]);
  • こんな感じだと思う -- yuuto 2025-08-28 (木) 15:24:10
    onPlayerJoin = (pId, fromGameReset) => {
    	globalThis[`${pId} joined`] = 0
    	texts = ["こ","ん","に","ち","は",`${api.getEntityName(pId)}さん`,"よ","う","こ","そ",`${api.getLobbyName()}へ`]
    }
    
    tick = () => {
    	pIds = api.getPlayerIds()
    	for (pId of pIds) {
    		if(globalThis[`${pId} joined`] /20 < texts.length) {
    			if(globalThis[`${pId} joined`] % 20 == 0) {
    				api.setClientOption(pId,"middleTextLower",texts[globalThis[`${pId} joined`] /20])
    			}
    			globalThis[`${pId} joined`]++
    		}else {
    			api.setClientOption(pId,"middleTextLower","")
    		}
    	}
    }
  • 多分こっちが要望にあってる。入ってから1秒ごとに送信。 -- ryoku_ 2025-08-28 (木) 15:38:30
  • ありがとうございます!! -- 匿名K 2025-08-29 (金) 13:15:37

これお願いします..

CB (2025-08-27 (水) 22:03:11)

指定したPlayerが指定した座標のblockをすり抜けられるcode、お願いします


  • let owner = ["指定された人の名前","指定された人の名前"];
    onPlayerJoin = (myId) => {
    if (owner == myId) {
    api.setWalkThroughType(myId, "すり抜けたいものの名前")
    }
    }
    worldcodeで動かすなら多分こんな感じ -- ィェィ 2025-08-28 (木) 09:25:23
  • 読み間違えた,api.setWalkThroughType(myId, "すり抜けたいものの名前")をapi.setWalkThroughRect(myId,[X座標,Y座標,Z座標],[X座標,Y座標,Z座標],1)に変えて -- ィェィ 2025-08-28 (木) 09:34:10
  • ありがとうございます!!! -- CB 2025-08-28 (木) 18:05:49

このコードの製作お願い致します

トリッピー美味しい (2025-08-27 (水) 21:48:04)

これたのむぅぅぅ15ってやつにある

playerCommand = (pId, cm) => {
    const pName = api.getEntityName(pId);
    const admins = ["Amuro__Ray","Cucuruz_Doan"];
    if(cm == "Ice" && admins.includes(pName)) {
        const nearbyEntities = [];
        const pPos = api.getPosition(pId);
        api.getPlayerIds().forEach(otherId => {
            if(otherId === pId) return;
            const oPos = api.getPosition(otherId);
            const dx = pPos[0] - oPos[0];
            const dy = pPos[1] - oPos[1];
            const dz = pPos[2] - oPos[2];
            const dist = Math.sqrt(dx*dx + dy*dy + dz*dz);
            if(dist <= 10) nearbyEntities.push(otherId);
        });
        api.getMobIds().forEach(mobId => {
            const mPos = api.getPosition(mobId);
            const dx = pPos[0] - mPos[0];
            const dy = pPos[1] - mPos[1];
            const dz = pPos[2] - mPos[2];
            const dist = Math.sqrt(dx*dx + dy*dy + dz*dz);
            if(dist <= 10) nearbyEntities.push(mobId);
        });

		nearbyEntities.forEach(nid => {
			api.applyEffect(nid,"Frozen",10000,{})
		})
        return true;
    }
}

の効果をFrozenとPoisonの2つ増やすことってできませんかね。無双状態なりたいんですけど...

api.applyEffect(nid,"Frozen",10000,{})

の次の行に

api.applyEffect(nid,"Poisoned",10000,{})

を追加しましょう


  • そうするだけです。 -- ryoku_ 2025-08-28 (木) 06:53:39
  • ありがとうございます -- トリッピー美味しい 2025-08-28 (木) 08:49:28

人狼の斧

owner (2025-08-27 (水) 19:45:16)

人狼RPGの「人狼の斧」「弓矢」のように、一回使ったらインベントリから消えるcodeを教えてください


モブの攻撃範囲

ネギ (2025-08-27 (水) 18:37:40)

モブの攻撃範囲を変更することは可能?


  • attackRadiusを弄ればいける -- けんたき 2025-08-27 (水) 21:02:19
  • ありがとう! -- ネギ 2025-08-28 (木) 17:05:06

ぽーたる

神 (2025-08-27 (水) 16:53:25)

Portalがほしい


  • api.editItemCraftingRecipes(myId,"(色) Portal",[{requires:[{items:["コスト"],amt: 1}],produces: 999,station:"Potion Table"}])     これ貼って使ってから醸造台開けば載ってるはずコストは好きなやつ入れてね -- rururu 2025-08-27 (水) 17:35:57
  • できなあああい -- 神 2025-08-27 (水) 18:05:40
  • 文字化けする -- 神 2025-08-27 (水) 18:13:20
  • コストと色の部分いじった? -- ネギ 2025-08-27 (水) 18:16:42
  • Portalだけなのにクラフトレシピいじる方法がないと思った自分が作ったポータル全色入手できるコード↓ -- yuuto 2025-08-27 (水) 18:53:56
    const color = ["Red","Lime","Pink","Gray","Cyan","Blue","White","Brown",
    "Green","Black","Orange","Yellow","Purple","Magenta","Light Blue","Light Gray"];
    
    const Portal = " Portal"
    
    for(let i = 0;i < color.length;i++){
    	const Na = color[i] + Portal
    	api.giveItem(myId, Na, 1, {})
    }
  • api.editItemCraftingRecipesが文字化けする理由:editItemの部分に、titが入っているから。対処法: i = "edit"; i += "ItemCraftingRecipes"; const editcraft = api[i]; editcraft(引数たち); のようにすること。 -- 2025-08-27 (水) 18:55:39
  • 違法アイテムのところに色形のクラフト改造があるよー -- ryoku_ 2025-08-27 (水) 21:06:27
  • みしようあいてむだった -- 2025-08-28 (木) 06:54:02
  • ありがとう! -- 神 2025-08-28 (木) 14:09:06
  • api.giveItem(myId,"purple portal",1)でできたよ -- nkai2312 2025-08-31 (日) 16:27:00

特定のブロックに触れるとワープするcode

野生のゴリラ (2025-08-27 (水) 14:55:10)

Green Portalをクリックすると特定の座標にワープするcodeを教えてほしいです!!


const pos = [x,y,z] //ここに座標を入れて
onPlayerAttemptAltAction = (pId, x, y, z, block, targetEId) => {
	if(block == "Green Portal") {
		api.setPosition(pId,pos)
	}
}
  • ほい。 -- 2025-08-27 (水) 21:14:12

これお願いします

スーパーヤサイ人 (2025-08-27 (水) 11:12:24)

1v1の鯖とかにあるコードブロック押すとtpして3秒ぐらい止めてからスタートするやつのCode分かります?
(説明下手ですみません

api.setPosition(myId,x,y,z) //好きな座標に
api.applyEffect(myId,"Frozen",3000,{})

  • っすね。もちろん他のコードも組まれているでしょうが、要望にはこれで十分です。 -- ryoku_ 2025-08-27 (水) 11:44:31
  • ありがとうございます! 皆さんのおかげで治りました! (なんかこのWiki秀才多いな) -- 無能と化した暇人 2025-08-27 (水) 22:29:17
  • あれ? またコメントするとこ間違えた...もう僕ダメかもな... -- まじで無能と化した暇人 2025-08-27 (水) 22:30:39

特定のブロックをすり抜けるコマンドを治す方法

無能と化した暇人 (2025-08-26 (火) 23:23:08)

このページに、特定のブロックをすり抜けられるコードが書いてあったので、試しに使ってみたんですが、元に戻す方法がわかりません。
戻す方法も書いてあったんですが、まだ日も浅く知識があまり無いのでコードを書けませんでした。(なんか定義されてないっぽい)
誰か心優しい方、教えてください。 お願いします


  • そういうコードが合ったのは覚えてるな、、、でもどういうコードだったかは覚えてない。そのコードの、trueの部分をfalseにするか、ワールドに入り直すとできるよ。 -- 2025-08-27 (水) 07:16:55
    api.setWalkThroughType(myId,"対象のブロック",true)
    例:api.setWalkThroughType(myId,"Grass Block",true)
  • 久々に簡単な質問きたー!!これでどうでしょうか -- ryoku_ 2025-08-27 (水) 10:28:05

これたのむぅぅぅ16

Cucuruz_Doan (2025-08-26 (火) 22:21:15)

Amuro__Ray又はCucuruz_Doanがチャットに /Fire と打つと自分の向いている方向10マス以内にいる人に15ダメージを与えるコード
耐熱(耐熱のポーションなど)で防げるようにしてほしい


playerCommand = (pId, cm) => {
    const pName = api.getEntityName(pId);
    const admins = ["Amuro__Ray","Cucuruz_Doan"];
    if(cm == "Ice" && admins.includes(pName)) {
        const nearbyEntities = [];
        const pPos = api.getPosition(pId);
        api.getPlayerIds().forEach(otherId => {
            if(otherId === pId) return;
            const oPos = api.getPosition(otherId);
            const dx = pPos[0] - oPos[0];
            const dy = pPos[1] - oPos[1];
            const dz = pPos[2] - oPos[2];
            const dist = Math.sqrt(dx*dx + dy*dy + dz*dz);
            if(dist <= 10) nearbyEntities.push(otherId);
        });
        api.getMobIds().forEach(mobId => {
            const mPos = api.getPosition(mobId);
            const dx = pPos[0] - mPos[0];
            const dy = pPos[1] - mPos[1];
            const dz = pPos[2] - mPos[2];
            const dist = Math.sqrt(dx*dx + dy*dy + dz*dz);
            if(dist <= 10) nearbyEntities.push(mobId);
        });

		nearbyEntities.forEach(nid => {
			api.applyEffect(nid,"Heat Resistance",10000,{})
		})
        return true;
    }
}
  • ちゃう 耐熱がついてないモブにダメージを与えたい -- Cucuruz_Doan 2025-08-27 (水) 10:11:58
    playerCommand = (pId, cm) => {
    	pName = api.getEntityName(pId)
    	pPos = api.getPosition(pId)
    	admins = ["Amuro__Ray","Cucuruz_Doan","Ryokuryusei_suisei_"]
    	if(cm == "Fire" && admins.includes(pName)) {
    		eIds = api.getEntitiesInRect([pPos[0]-10,pPos[1]-10,pPos[2]-10], [pPos[0]+10,pPos[1]+10,pPos[2]+10])
    		for(eId of eIds) {
    			eType = api.getEntityType(eId)
    			if(eType != "Item") {
    				eName = api.getEntityName(eId)
    				eEffect = api.getEffects(eId)
    				if(!admins.includes(eName) &&
    				   !eEffect.includes("Heat Resistance")) {
    						eHp = api.getHealth(eId)
    						api.applyHealthChange(eId,eHp *-1,pId,true)
    				}
    			}
    		}
    		return "preventCommand"
    	}
    }
  • こういうことだな。こっちのほうがわかりやすいし要望にあってると思う。でもプレイヤーが向いてる方向って...。とりあえずこれ使って。調べとく。 -- ryoku_ 2025-08-27 (水) 10:49:28
  • 目線の先にいる人なのか、単純に半径10ブロック以内にいる人に対してなのか。どっちなの? -- けんたき 2025-08-27 (水) 20:46:03
      function normalize(vec) {
        const len = Math.sqrt(vec[0] * vec[0] + vec[1] * vec[1] + vec[2] * vec[2]);
        if (len === 0) return [0, 0, 0];
        return [vec[0] / len, vec[1] / len, vec[2] / len];
      }
      function length(v) {
        return Math.sqrt(v[0]**2 + v[1]**2 + v[2]**2);
      }
      let hitMobs = [];
      playerCommand = (playerId, command) => {
        if(command.toLowerCase() === "fire"){
          hitMobs = [];
          const { camPos, dir } = api.getPlayerFacingInfo(playerId);
    
          //ベクトルを正規化
          const lookDir = normalize(dir);
    
          const maxDistance = 10;
          for (let i = 1; i <= maxDistance; i++) {
            const checkPos = [
              Math.floor(camPos[0] + lookDir[0] * i),
              Math.floor(camPos[1] + lookDir[1] * i),
              Math.floor(camPos[2] + lookDir[2] * i)
            ];
    
            const mobs = api.getMobIds();
            for (const mobId of mobs) {
              const mobBlocks = api.getUnitCoordinatesLifeformWithin(mobId);
              for (const block of mobBlocks) {
                if (block[0] === checkPos[0] && block[1] === checkPos[1] && block[2] === checkPos[2]) {
                  if (!hitMobs.includes(mobId)) {
                      hitMobs.push(mobId);
                  }
                }
              }
            }
          }
          hitMobs.forEach(eId => {
            const effects = api.getEffects(eId);
            if(!effects.includes("Heat Resistance")){
              api.attemptApplyDamage({
                eId: playerId,
                hitEid: eId,
                attemptedDmgAmt: 15,
                withItem: "Diamond Sword",
              });
            }
          });
          return true;
        }
      }
  • 目線の先にいる人に対してはこれを使ってね -- けんたき 2025-08-27 (水) 21:00:36
  • 目線の先ですありがとうございます -- Cucuruz_Doan 2025-08-27 (水) 21:37:51

建築鯖でひつよう

Ragu (2025-08-26 (火) 09:27:34)

自分が選んだサイズの土地をゲットできる。そしてその土地で建築をできる
さらに違うプレイヤーは誰かが作った土地に入るとサバイバルアドベンチャーモードになる
要するに大きさが選べて、個数無限かつ、サバイバルアドベンチャーになるプロテクター
・プレイヤーはXS(30×30)S(50×50)M(75×75)L(100×100)
 XL(150×150)から選べる
・選んだらその大きさに合った土地が生成される
・他のプレイヤーがその土地に入るとその土地の主に許可されない限り
 サバイバルアドベンチャーに切り替わる
・しかし指定された人はサバイバルアドベンチャーに切り替わらない


  • 無理、、、ては言えないんですけどめっちゃくちゃ難しいです。
    あと容量無限だと人が入るたびにメッチャクチャラグくなる可能性もあります。 -- ryoku_ 2025-08-26 (火) 16:35:49
  • ラグ要素多いなぁ。サイズ選べない+個数有限ならまだいいかもだけど。 -- ネギ 2025-08-26 (火) 17:25:50
  • ですよねぇ。そしたら、サイズはLサイズで個数はできる限り多くして欲しいです。 -- Rage 2025-08-26 (火) 19:18:34
  • グリーンビルみたいな感じか -- トリッピー美味しい 2025-08-28 (木) 09:01:57
  • そう!そういう感じです! -- Ragu 2025-08-28 (木) 12:44:02

クールダウンを作りたい

匿名 (2025-08-26 (火) 07:02:46)

例えば10秒たってから右クリックをしたらアイテムをゲットできてまた10秒たって右クリックをしたらアイテムをゲットできるみたいなworldcodeを教えてほしい


last = globalThis[`${myId} lastTime`]

if(isNaN(last) || last == 0) {
	updateNow()
}

if(Now() >= last + 10000) {
	effect = "Thief"
	api.applyEffect(myId,effect,10000,{displayName:"Item Cooldown"})
	//この下にやりたい処理を書こう
	api.giveItem(myId,"Gold Coin",10)
	//この上にやりたい処理を書こう
	updateNow()
}

function Now () {
	return(Number(api.now()))
}

function updateNow () {
	globalThis[`${myId} lastTime`] = Now();
	last = globalThis[`${myId} lastTime`]
}
  • これでどう? -- ryoku_ 2025-08-26 (火) 16:58:17
  • ありがとうございます!! -- 匿名 2025-08-28 (木) 06:32:47

ランダムアイテム

神 (2025-08-25 (月) 20:30:39)

固定のアイテムを壊すとランダムねアイテムがゲット出来るコマンド


  • 固定のアイテムって何かまで言っておかないと大変なんじゃ,,, -- ゾンビ君 2025-08-25 (月) 20:44:47
  • 草ブロックがいい -- 神 2025-08-25 (月) 20:56:58
  • 下の方にあるよ。 -- ryoku_ 2025-08-26 (火) 17:11:38
    //作成 @??
    onPlayerChangeBlock = (playerId, x, y, z ,fromBlock) => {if(fromBlock==="好きなブロック"){RandomItem = api.blockIdToBlockName((Math.floor(Math.random()*1946))+1);RandomAmount = Math.floor(Math.random()*10);api.createItemDrop(x+0.5, y+0.5, z+0.5, RandomItem, RandomAmount, true);return "preventDrop";
  • 下のヤツエラおきる -- 神 2025-08-27 (水) 16:50:54
  • 好きなブロックの所置き換えてる? -- ryoku_ 2025-08-28 (木) 06:54:42
  • うん -- 神 2025-08-29 (金) 16:05:45

これたのむぅぅぅ15

Cucuruz_Doan (2025-08-24 (日) 19:51:43)

Amuro__Ray又はCucuruz_Doanがチャットに /Ice と打つと半径10ブロック以内にいるモブとプレイヤーを10秒間Frozen状態にするコード


  • 自分で考えること諦めてないか() -- ネギ 2025-08-25 (月) 16:11:42
    playerCommand = (pId, cm) => {
    	pName = api.getEntityName(pId)
    	pPos = api.getPosition(pId)
    	admins = ["Amuro__Ray","Cucuruz_Doan"]
    	if(cm == "Ice" && admins.includes(pName)) {
    		eIds = api.getEntitiesInRect([pPos[0]-10,pPos[1]-10,pPos[2]-10], [pPos[0]+10,pPos[1]+10,pPos[2]+10])
    		for(eId of eIds) {
    			eType = api.getEntityType(eId)
    			eName = api.getEntityName(eId)
    			if(eType != "Item" && !admins.includes(eName)) {
    				api.applyEffect(eId,"Frozen",10000,{})
    			}
    		}
    		return "preventCommand"
    	}
    }
  • 今日だいぶ頑張ったわ... -- ryoku_ 2025-08-25 (月) 18:02:22
  • 自分では違法アイテム関連しか出来ないから無理だったありがとう -- Cucuruz_Doan 2025-08-25 (月) 20:46:53
  • スラッシュで始まるやつはonPlayerChatじゃないんや。 -- ネギ 2025-08-26 (火) 17:27:16
  • こうやで -- けんたき 2025-08-26 (火) 20:43:37
    playerCommand = (pId, cm) => {
        const pName = api.getEntityName(pId);
        const admins = ["Amuro__Ray","Cucuruz_Doan"];
        if(cm == "Ice" && admins.includes(pName)) {
            const nearbyEntities = [];
            const pPos = api.getPosition(pId);
            api.getPlayerIds().forEach(otherId => {
                if(otherId === pId) return;
                const oPos = api.getPosition(otherId);
                const dx = pPos[0] - oPos[0];
                const dy = pPos[1] - oPos[1];
                const dz = pPos[2] - oPos[2];
                const dist = Math.sqrt(dx*dx + dy*dy + dz*dz);
                if(dist <= 10) nearbyEntities.push(otherId);
            });
            api.getMobIds().forEach(mobId => {
                const mPos = api.getPosition(mobId);
                const dx = pPos[0] - mPos[0];
                const dy = pPos[1] - mPos[1];
                const dz = pPos[2] - mPos[2];
                const dist = Math.sqrt(dx*dx + dy*dy + dz*dz);
                if(dist <= 10) nearbyEntities.push(mobId);
            });
    
    		nearbyEntities.forEach(nid => {
    			api.applyEffect(nid,"Frozen",10000,{})
    		})
            return true;
        }
    }
  • 何が違うの?普通に上のでよくね? -- ryoku_ 2025-08-27 (水) 10:25:40
  • 後それだと認識されないコマンドになるよ。 -- ryoku_ 2025-08-27 (水) 10:51:09
  • "半径"10ブロック以内っていう要望だからこっちのほうがあってるよー -- けんたき 2025-08-27 (水) 20:22:44
  • あー。円か長方形かってことか。でも投稿主が満足してるから良さそう...。コードありがとう。 -- ryoku_ 2025-08-27 (水) 21:08:16
  • たぶん投稿主は円球のことを指してると思われる -- トリッピー美味しい 2025-08-27 (水) 21:40:30
  • ここに書いてあるコードの効果が発動する範囲ってどうやったらいじれますかね? (知識あまりないからわかんない) -- 無能の暇人 2025-08-31 (日) 08:19:28

これたのむぅぅぅ14

Cucuruz_Doan (2025-08-24 (日) 19:45:17)

橙色のペイントボールを手に持った状態で死ぬと(インベントリに入れるだけじゃダメ)その場で復活&アイテム落とさない&死んだ場所を中心に半径5ブロック以内のプレイヤーとモブに衝撃波するコード
{不死のトーテム+死んだ場所を中心に半径5ブロック以内のプレイヤーとモブに衝撃波(衝撃波ポーション2と同じ威力)}


  • 衝撃波はベクトルが違うのでかなりむずいですね。プレイヤーの位置から演算する...。こちらは少し待ってください。 -- ryoku_ 2025-08-25 (月) 17:37:51
  • でけた。下に追加したよ。 -- ryoku_ 2025-08-27 (水) 11:41:49

これたのむぅぅぅ13

Cucuruz_Doan (2025-08-24 (日) 19:42:40)

緑色のペイントボールを手に持った状態で死ぬと(インベントリに入れるだけじゃダメ)その場で復活&アイテム落とさない&死んだ場所を中心に半径5ブロック以内のプレイヤーとモブを10秒間毒状態にするコード
(不死のトーテム+死んだ場所を中心に半径5ブロック以内のプレイヤーとモブに10秒間の毒状態)


  • 自分に毒かかっちゃうけど大丈夫? -- ゾンビ君 2025-08-25 (月) 13:00:48
    onAttemptKillPlayer = (deadperson, killer) => {
    	item = api.getHeldItem(deadperson)
    	if(item.name.includes("Paintball")) {
    		color = item.name.replace(" Paintball", "")
    		pPos = api.getPosition(deadperson)
    		eIds = api.getEntitiesInRect([pPos[0]-5,pPos[1]-3,pPos[2]-5], [pPos[0]+5,pPos[1]+3,pPos[2]+5])
    
    		if (color == "Green") {
    			for(eId of eIds) {
    				type = api.getEntityType(eId)
    				if(type !== "Item" && eId !== deadperson) {
    					api.applyEffect(eId,"Poisoned",20000,{inbuiltLevel:10})
    				}
    			}
    			return "preventDeath"
    
     		}else if (color == "Black") {
    			for(eId of eIds) {
    				type = api.getEntityType(eId)
    				if(type !== "Item" && eId !== deadperson) {
    					api.killLifeform(eId,{lifeformId:deadperson,withItem:"Diamond Chestplate"})
    				}
    			}
    			return "preventDeath"
    
     		}else if (color == "White") {
    			return "preventDeath"
    		}else if (color == "Orange") {
    			api.log("ok")
    			for(eId of eIds) {
    				pPos = api.getPosition(deadperson)
    				targetPos = api.getPosition(eId)
    				x = pPos[0]-targetPos[0]+1
    				z = pPos[2]-targetPos[2]+1
    
    				api.applyImpulse(eId,25/x,15,25/z)
    			}
    			return "preventDeath"
    		}
    	}
    }
  • 書いたよ...バタ... -- ryoku_ 2025-08-25 (月) 17:36:40
  • ちなみにこれは即再生って言うよりは死亡キャンセル界隈だね。 -- ryoku_ 2025-08-25 (月) 17:41:54
  • ありがとう!! -- Cucuruz_Doan 2025-08-25 (月) 20:47:52
  • おおすごいありがとう!!! -- Cucuruz_Doan 2025-08-27 (水) 21:43:55

これたのむぅぅぅ12

Cucuruz_Doan (2025-08-24 (日) 19:38:46)

黒色のペイントボールを手に持った状態で死ぬと(インベントリに入れるだけじゃダメ)その場で復活&アイテム落とさない&死んだ場所を中心に半径5ブロック以内のプレイヤーとモブを殺すコード
(不死のトーテム+死んだ場所を中心に半径5ブロック以内のプレイヤーとモブを殺す)


  • 上のコードで解決さ。 -- ryoku_ 2025-08-25 (月) 17:38:39

これたのむぅぅぅ11

Cucuruz_Doan (2025-08-24 (日) 19:34:55)

白色のペイントボールを手に持った状態で死ぬと(インベントリに入れるだけじゃダメ)その場で復活&アイテム落とさないようになるコード
(不死のトーテム)


  • 上のコードで解決さ。 -- ryoku_ 2025-08-25 (月) 17:38:53

名前を虹色にするCode

CB2025 (2025-08-10 (日) 09:23:57)

名前を虹色にするCodeを教えてください。


  • Super rankなしでやってる人がいたんですけど、知っている方がいたらお願いします -- CB2025 2025-08-10 (日) 09:25:26
  • hsvを使うといいと思います。難しいと思います。サバイバルv3の鯖のコードのhsvを参考にして彩度をグラデーションのようにするといいと思いますよ -- sado 2025-08-12 (火) 20:18:13
    YT、Dev、Superランクあり・全員が虹色
    let i = "getEnti"
    i += "tyName"
    var getName = api[i]
    
    function onPlayerChat(pid, Cha, Ch){
        const name = getName(pid)
        const getRainbowStyledText = (text) => {
            const colors = [
                "#FF0000", "#FF4500", "#FF8C00", "#FFA500", "#FFD700", "#FFFF00",
                "#ADFF2F", "#00FF00", "#00FA9A", "#00FFFF", "#1E90FF", "#0000FF",
                "#4B0082", "#8A2BE2", "#9400D3", "#FF00FF"
            ];
            let styledChars = [];
            const nonSpaceChars = text.replace(/ /g, "").length;
            const colorStep = colors.length / nonSpaceChars;
            let colorPosition = 0;
    
            for (let char of text) {
                if (char !== " ") {
                    const exactColorIndex = colorPosition % colors.length;
                    const lowerColorIndex = Math.floor(exactColorIndex);
                    styledChars.push({ str: char, style: { color: colors[lowerColorIndex] } });
                    colorPosition += colorStep;
                } else {
                    styledChars.push({ str: " " });
                }
            }
            return styledChars;
        };
        const rainbowNameParts = getRainbowStyledText(getName(pid));
        api.broadcastMessage([
    			{str:"[", style:{color:"#CEF3FF"}},
    			{icon:"wrench", style:{color:"#A4A4A4"}},
    			{str:"Dev] ", style:{color:"#CEF3FF"}},
    			{str:"[", style:{color:"#CEF3FF"}},
    			{icon:"youtube", style:{color:"#FE0000"}},
    			{str:"You", style:{color:"#FFFFFF"}},
    			{str:"Tuber", style:{color:"#FE0000"}},
    			{str:"] ", style:{color:"#CEF3FF"}},
    			{str:"[", style:{color:"#FFCC00"}},
    			{icon:"zap", style:{color:"#FFCC00"}},
    			{str:"Super] ", style:{color:"#FFCC00"}},
    			...rainbowNameParts,
    			{str:": ",style:{color:"#FFFFFF"}},
    			Cha
        ])
      return false;
    }
YT、Dev、Superランクあり・指定プレイヤーのみが虹色
let i = "getEnti"
i += "tyName"
var getName = api[i]
const RainbowMem = ["プレイヤー1","プレイヤー2","プレイヤー3"] //ここに1,2,3と書いていく。""の中にはプレイヤー名を入れる。

function onPlayerChat(pid, Cha, Ch){
    const name = getName(pid)
    const getRainbowStyledText = (text) => {
        const colors = [
            "#FF0000", "#FF4500", "#FF8C00", "#FFA500", "#FFD700", "#FFFF00",
            "#ADFF2F", "#00FF00", "#00FA9A", "#00FFFF", "#1E90FF", "#0000FF",
            "#4B0082", "#8A2BE2", "#9400D3", "#FF00FF"
        ];
        let styledChars = [];
        const nonSpaceChars = text.replace(/ /g, "").length;
        const colorStep = colors.length / nonSpaceChars;
        let colorPosition = 0;

        for (let char of text) {
            if (char !== " ") {
                const exactColorIndex = colorPosition % colors.length;
                const lowerColorIndex = Math.floor(exactColorIndex);
                styledChars.push({ str: char, style: { color: colors[lowerColorIndex] } });
                colorPosition += colorStep;
            } else {
                styledChars.push({ str: " " });
            }
        }
        return styledChars;
    };
  if(RainbowMem.includes(name)){
    const rainbowNameParts = getRainbowStyledText(getName(pid));
    api.broadcastMessage([
			{str:"[", style:{color:"#CEF3FF"}},
			{icon:"wrench", style:{color:"#A4A4A4"}},
			{str:"Dev] ", style:{color:"#CEF3FF"}},
			{str:"[", style:{color:"#CEF3FF"}},
			{icon:"youtube", style:{color:"#FE0000"}},
			{str:"You", style:{color:"#FFFFFF"}},
			{str:"Tuber", style:{color:"#FE0000"}},
			{str:"] ", style:{color:"#CEF3FF"}},
			{str:"[", style:{color:"#FFCC00"}},
			{icon:"zap", style:{color:"#FFCC00"}},
			{str:"Super] ", style:{color:"#FFCC00"}},
			...rainbowNameParts,
			{str:": ",style:{color:"#FFFFFF"}},
			Cha
    ])
  }
  return false;
}
  • 教えてくださりありがとうございました。 -- CB 2025-08-24 (日) 07:58:21

タイムアタックのストップウォッチ

QQnly (2025-08-09 (土) 21:01:44)

ブロックスドホップとかみたいに金ブロックを踏んだらストップウォッチがスタートして、また鉄ブロックを踏んだらストップウォッチが止まるコードあったら教えてぐれ


const timers = {};

function onBlockStand(id, x, y, z, blockName) {
  const startBlock = "Block of Gold";
  const stopBlock = "Block of Iron";

  if (blockName === startBlock) {
    timers[id] = { start: Date.now(), running: true };
  } else if (blockName === stopBlock) {
    if (timers[id] && timers[id].running) {
      const elapsed = Math.floor((Date.now() - timers[id].start) / 1000);
      api.sendMessage(id, "ゴールタイム: " + elapsed + "秒");
      timers[id].running = false;
    }
  }
}

function tick() {
  const ids = api.getPlayerIds();
  for (let i = 0; i < ids.length; i++) {
    const pid = ids[i];
    if (timers[pid] && timers[pid].running) {
      const elapsed = Math.floor((Date.now() - timers[pid].start) / 1000);
      api.setClientOption(pid, "middleTextLower", [
        { str: "タイマー: " + elapsed + "秒", style: { color: "yellow" } }
      ]);
    } else {
      api.setClientOption(pid, "middleTextLower", "");
    }
  }
}
  • 一応いいますがbloxdhopでは金ブロックはチェックポイントです。 -- 2025-08-10 (日) 08:28:56

これたのむぅぅぅ10

Cucuruz_Doan (2025-08-04 (月) 20:05:25)

グリーンビルでクリエになれるコード(悪用?しないわけがないw)


  • Green villeでコードって打てたっけ、、、まあ飛べるコードはあるけどapi.setClientOption(myId, "creative", true); -- 2025-08-04 (月) 20:24:51
  • ワールドでグリビルの設定変えれへん? -- Cucuruz_Doan 2025-08-06 (水) 09:45:32
  • どゆこと -- 2025-08-06 (水) 12:24:21
  • 無理です。一時期、自分がオーナーのサバなら看板コマンドが打てて無双できましたが。 -- ryoku_ 2025-08-22 (金) 13:00:47
  • ソウナノカワカリマシタTnT💣💥(爆発オチ) -- Cucuruz_Doan 2025-08-24 (日) 19:30:51
  • コード編集画面には行ける -- とまと 2025-08-29 (金) 13:38:49