コマンド/Press to code/QandA

Last-modified: 2025-12-23 (火) 20:11:28

このページは、コマンド/Press to codeQandAの専用ページである。
各ページはサイドバーから

目次

目次

ルール

こちらは噛み砕いたバージョンです。改まった内容はこちら→https://writening.net/page?ePK4zj

  • 投稿した場合はルールに同意したということです。
  • サービスだから回答者や閲覧者を気にかけて言葉を選んでください。そして、内容はエラーも投稿もわかりやすく具体的にしてください。
  • 100%は求めないでください。
  • 基本的には好きに使って良いですが作成者になりすます行為やライセンス違反は禁じます。
  • 質問は3日以上あけてください。ですが、急ぎだったら相談してください。
  • 一回で複数のコードに関する質問をしないでください。

    ライセンスの利用規約に違反した場合規制します。

QandA

ルールを読んで投稿してください。

Lapis Lazuli OreとEmerald Oreを洞窟にランダムで設置するコード

jp_hello_world19 (2025-12-23 (火) 19:49:06)

Lapis Lazuli OreとEmerald Oreを洞窟にランダムで設置するコード
掘ったらBlock of Lapis Lazuli Block of Emeraldをドロップするように


釣り竿をClassicで使用可能に

JRCentral (2025-12-23 (火) 18:45:29)

釣り竿はClassic Worldだと遺法アイテムのcodeに入れるだけでgetできますが魚を釣ることができないので
釣れるようにするcodeを知っている方は教えてください


死んだ時の経験値ドロップについて

Soranokami (2025-12-21 (日) 09:46:00)

Bloxdでは普通死んだ時に二分の一の経験値を落としますが、
これの値を変更できませんかね,,,
10%を殺した人に渡すやつでお願いします。
殺された人=殺した人,つまり自○の時は経験値を落とさないでください。


const auraChangePersent = 0.1
onPlayerKilledOtherPlayer = (killerP, deadP, damage, item) => {
    const deadPAura = api.getAuraInfo(deadP).totalAura
    api.applyAuraChange(deadP, deadPAura)

    if(killerP !== deadP) {
        api.applyAuraChange(killerP, deadPAura * (auraChangePersent * 2 - 1))
        api.applyAuraChange(deadP, deadPAura * auraChangePersent * -2)
    }
}
  • 一番上の0.1の値をいじれば他の値でもいけます! -- ryoku_ 2025-12-21 (日) 17:45:37
  • ありがとうございます。これ変更すれば完全なkeepinvenもできますね -- Soranokami 2025-12-22 (月) 16:17:02

リアル時刻でcallback

砂糖 (2025-12-21 (日) 02:07:47)

リアル時刻(JP)で特定の時間(もしくは時間帯)の間callbackする感じ。
例:
1:00になった                    ←ここ
 →api.broadcastMessage("1:00を回りました。")

実際に作りたいのはこの例じゃないからcallback(もどき)だけ教えて欲しい。


  • はいどうぞ -- けんたき 2025-12-21 (日) 09:22:39
    let count = 0;
    const triggers = [
      {
        hour: 9,
        minute: 30,
        second: 0,
        callback: () => api.broadcastMessage("9時30分になりました!")
      },
      {
        hour: 9,
        minute: 0,
        second: 0,
        callback: () => api.broadcastMessage("9時になりました!")
      },
      {
        hour: 21,
        minute: 0,
        second: 0,
        callback: () => api.broadcastMessage("21時になりました!")
      }
    ];
    const convertToDate=$=>{let _=0,e=0,o=0,t=[30,58,89,119,150,180,211,242,272,303,333,364],r=$/1e3-1735657200-3|0,n=(r%86400+86400)%86400,f=r/86400|0;cD:for(;;_++)for(let a of(e=0,t)){if(f<a+365*_){o=f-t[e-1]-365*_;break cD}e++}return{y:_+2025,month:e+1,date:o,hour:n/3600|0,minutes:n%3600/60|0,second:n%60}};
    tick = () => {
      count++;
      if (count % 20 !== 0) return;
      const { hour, minutes, second } = convertToDate(api.now());
      for (const t of triggers) {
        if (hour === t.hour && minutes === t.minute && second === t.second) {
          t.callback();
          break;
        }
      }
    };
  • triggersのcallbackが時間になったときに呼び出されます -- けんたき 2025-12-21 (日) 09:24:04
  • あとconvertToDate作ってくれた温泉ありがとう! -- けんたき 2025-12-21 (日) 09:28:40
  • ありがとうございます。 -- 砂糖 2025-12-21 (日) 16:05:29

ハイピクセルのPvP鯖のコードパクリ(できればなる早で)

さとぅ (2025-12-19 (金) 21:28:59)

今やりたい企画があって、ハイピクセルのPvP鯖のコードブロックを押したら、5人くらいとマッチングしてそれぞれ指定した座標にテレポートして3秒後くらい硬直してて、始まるみたいなことってできませんか????


const positions = [[0,0,0],[1,0,0],[2,0,0],[3,0,0],[4,0,0]]
pvp5 = globalThis.fivePlayerPvP
pvp5 = !pvp5 ? [] : pvp5

if(!pvp5.includes(myId)) {
	pvp5.push(myId)
	if(pvp5.length === 5) {
		pvp5 = undefined
		for(let i = 0; i < pvp5.length; i++) {
			api.applyEffect(pvp5[i],"Frozen",3000,{})
			api.setPosition(pvp5[i],positions[i])
		}
	}else {
		api.log(`Joined :${pvp5.length}/5`)
	}
}
  • 試してないですが多分これでいけます。 -- ryoku_ 2025-12-21 (日) 17:57:39

爆弾について

Aさん (2025-12-19 (金) 11:36:30)

特定の物を爆発させたり、その威力を調節できるようなコマンドないですか?


  • TNTなどを爆発させるAPI関数は今のところありません -- けんたき 2025-12-19 (金) 21:37:43
  • ですが爆発っぽい演出は可能で、その方法では威力も調節可能です。
    ①playParticleEffectでパーティクルを出す
    ②calcExplosionForceでノックバック方向を取得し、applyImpulseで吹っ飛ばす
    ③ダメージを近くの人間に与える
    これで出来ると思います。気が向いたら作るかも -- けんたき 2025-12-19 (金) 21:43:52

知りたいコマンドがあります。 ガチャを作りたいんです。エンチャントされた装備(ガチャを回すためのアイテムなども作りたい) それと右に表示したりする説明などを書くゲージ(?)の文の色を変えたいです。あとお金を表示させたいです。(増やしたり、減らしたり)アイテムを購入したりアイテムを売ったりするなど。

Q:(クェスチョン) (2025-12-19 (金) 09:37:18)

知りたいコマンドがあります。
ガチャを作りたいんです。エンチャントされた装備(ガチャを回すためのアイテムなども作りたい)
それと右に表示したりする説明などを書くゲージ(?)の文の色を変えたいです。あとお金を表示させたいです。(増やしたり、減らしたり)アイテムを購入したりアイテムを売ったりするなど。


  • 知りたいコマンドがあります。ガチャを作りたいんです。エンチャントされた装備(ガチャを回すためのアイテムなども作りたい)それと右に表示したりする説明などを書くゲージ(?)の文の色を変えたいです。あとお金を表示させたいです。(増やしたり、減らしたり)アイテムを購入したりアイテムを売ったりするなど。 -- Q:(クェスチョン) 2025-12-19 (金) 09:38:45
  • 質問は簡潔に -- Soranokami 2025-12-21 (日) 09:43:27

逃走中っぽいタイマーcode教えて

SkyJP-01 (2025-12-19 (金) 09:09:46)

逃走中鯖を企画してて、時間経過とともに賞金が加算されるタイマーcodeを
誰か作ってくれないでしょうか?


globalThis.playerData = {}

function startGame() {
  for (let pid of api.getPlayerIds()) {
    globalThis.playerData[pid] = {
      prize: 0,
      survive: true
    }
  }
  api.broadcastMessage("Game Start!")
}

function addPrize(pid) {
  if (globalThis.playerData[pid] != undefined) {
    globalThis.playerData[pid].prize++
  }
}

function stopPrize(pid) {
  if (globalThis.playerData[pid] != undefined) {
    globalThis.playerData[pid].survive = false
  }
}

function endGame() {
  let ranking = []

  for (let pid of api.getPlayerIds()) {
    if (globalThis.playerData[pid] != undefined) {
      globalThis.playerData[pid].survive = false

      ranking.push({
        pid: pid,
        prize: globalThis.playerData[pid].prize
      })
    }
  }

  ranking.sort((a, b) => {
    return b.prize - a.prize
  })

  api.broadcastMessage("Game End!")
  api.broadcastMessage([{ str: "賞金ランキング\n", style: { color: "gold" } }])

  if (ranking.length >= 1) {
    api.broadcastMessage(`1位:${api.getEntityName(ranking[0].pid)}(${ranking[0].prize})\n2位:${api.getEntityName(ranking[1].pid)}(${ranking[1].prize})\n3位:${api.getEntityName(ranking[2].pid)}(${ranking[2].prize})`)
  }
}


let tickCount = 0
tick = () => {
  tickCount++

  if (tickCount % 20 === 0) {
    for (let pid of api.getPlayerIds()) {
      const data = globalThis.playerData[pid]

      if (data != undefined && data.survive === true) {
        addPrize(pid)
      }
    }
  }
}

ゴミ箱について

miyadai (2025-12-18 (木) 22:54:19)

プレイヤーがあるアイテムを選択しており(持っており)、その状態でコードブロックを作動させたら、そのアイテムが消えるコードってありませんか?


  • api.setItemSlot(myId,api.getSelectedInventorySlotI(myId),"Air",0,{} このコードで多分行けると思いますよ。このページの下の方に載ってました。
    僕が言うのもアレですが、コマンドのQ&Aは定期的にチェックしておく事をおすすめします。 -- 無能と化した暇人 2025-12-19 (金) 01:14:31
  • すいません。ありがとうございます -- miyadai 2025-12-19 (金) 06:07:36

爆弾の制限を解除するWorld Code、又は爆弾を設置するコマンドを教えてください

Aさん (2025-12-18 (木) 18:01:10)

このコマンドマジで分からん


  • 言い忘れましたが出来る限り急ぎでお願いします -- Aさん 2025-12-18 (木) 18:13:42
  • ないです -- けんたき 2025-12-18 (木) 19:03:51
  • 残念😢。まあ待ってるあいだに色々いいコマンド手に入れたのでok! -- Aさん 2025-12-18 (木) 19:50:40

インベントリのキープ

コマンドってムズイなあ (2025-12-18 (木) 17:34:22)

死んでもインベントリのアイテムが失われないワールドコードはありますか?


  • チャットに /togglekeepinven true と入力してください -- yuuto 2025-12-18 (木) 18:47:25
  • ありがとうございます。 -- コマンドってムズイなあ 2025-12-18 (木) 20:46:15

なるべく早くでお願いいたします。

初めて投稿します。 (2025-12-18 (木) 11:58:43)

let AXE_NAME = "Moon";
AXE_NAME += "stone Axe";

function giveMoonstoneAxe(pid){
  api.giveItem(pid,{
    name: AXE_NAME,
    count: 1,
    enchantments:[
      { name: "Sharpness", level: 4 }
    ]
  });
}

onPlayerJoin = (pid)=>{
  giveMoonstoneAxe(pid);
};

onPlayerAttack = (attacker, target)=>{

  let g = "getHeld";
  g += "Item";
  const item = api[g](attacker);
  if(!item || item.name !== AXE_NAME) return;

  if(target){
    let b = "Brain Rot";

    let s = "Slow";
    s += "ness";

    api.applyEffect(target, b, 6000, { level: 1 });
    api.applyEffect(target, s, 6000, { level: 20 });
  }

  let d = "Damage";
  let r = " Reduction";

  api.applyEffect(attacker, d, 6000, { level: 5 });
  api.applyEffect(attacker, "Speed", 6000, { level: 3 });
  api.applyEffect(attacker, d + r, 6000, { level: 8 });
};

というコードが何故か使えません。直していただけますでしょうか?


  • Sharpnessってエンチャントは存在しません。それにgiveItemの使い方も間違ってるし、、AIでも使ったんですかね、、鋭さというエンチャントは存在しません。 -- yuuto 2025-12-18 (木) 13:37:00
let AXE_NAME = "Moonstone Axe";

onPlayerJoin = pid=>{
  api.giveItem(pid, AXE_NAME, 1, { customAttributes : { enchantments : { "Damage": 5 }, enchantmentTier : "Tier 4" } } )
}

onPlayerAttack = (attacker, target)=>{
  const item = api.getHeldItem(attacker)
  if(item.name !== AXE_NAME || !item) return

  api.applyEffect(target, "Brain Rot", 6000, {})
  api.applyEffect(target, "Slowness", 6000, { inbuiltLevel: 20 })

  api.applyEffect(attacker, "Damage" , 6000, { inbuiltLevel: 5 });
  api.applyEffect(attacker, "Speed" , 6000, { inbuiltLevel: 3 });
  api.applyEffect(attacker, "Damage Reduction" , 6000, { inbuiltLevel: 8 });
};

刑務所的なの

あり (2025-12-17 (水) 21:12:36)

特定の人だけテレポート出来なくするみたいな、ロビーテレポートもあらかじめ設定してたテレポートのとこもリクエストも使えなくするコードってありますか?


モブが勝手にスポーンしないコード

jp_hello_world19 (2025-12-17 (水) 18:31:04)

モブが勝手にスポーンしないコード(スポーンオーブからはだせるように)


  • onWorldAttemptSpawnMob = (mobType, x, y, z) => { return "preventSpawn";};でできる -- Soranoami 2025-12-17 (水) 19:09:19
  • code見やすくコメントするやつどうしたらいいんだ運営さん -- Soranokami 2025-12-17 (水) 19:09:45
  • #code でできる -- 亡霊 2025-12-17 (水) 23:21:55
  • まあもう少し文字があるからプラグイン見てください() -- 亡霊 2025-12-17 (水) 23:22:43

エンチャ+

Soranokami (2025-12-16 (火) 19:03:12)

どう頑張ってもできなかったのでお願いしたいです。
例で言うとエンチャントレベル300みたいな海外の鯖のやつ真似して欲しいかな。
コードブロックを押すと、押したアイテムデータを取得してDamageエンチャに1を足して欲しいです。それは経験値が必要で、レベルが上がるにつれてどんどん必要経験値が上がるようにして欲しいです。
お願いします。


  • そのコードは過去のコードにあります。探してみてください。 -- yuuto 2025-12-17 (水) 16:17:07
  • どこにあるのかわからないです。。できればリンク貼ってもらえますか? -- Soranokami 2025-12-17 (水) 17:11:02
    const i = api.getHeldItem(myId)
    if (!i) return;
    
    const ench = i.attributes?.customAttributes?.enchantments
    if (!ench || ench.Damage == null) return;
    
    const auraInfo = api.getAuraInfo(myId)
    const auraLevel = auraInfo.level
    
    const useAura = (ench.Damage + 1) * 100
    if (auraLevel < useAura) return;
    
    ench.Damage += 1
    api.applyAuraChange(myId, -useAura)
    
    const slotI = api.getSelectedInventorySlotI(myId)
    api.setItemSlot(myId, slotI, i.name, i.amount, i.attributes)
  • こんな感じのコードでどうですか? -- yuuto 2025-12-17 (水) 18:12:22
  • ありがとうございます! -- Soranokami 2025-12-17 (水) 19:06:12
  • syntaxerror: return not in a functionなので関数がないところで返してるのでは,,, -- Soranokami 2025-12-17 (水) 19:17:41
  • yuutoはreturn依存症(後から色々付け加えたり編集するときにやりにくくなるやつ)の神だから...。何度も警告してるのに... -- ryoku_ 2025-12-17 (水) 19:30:44
    let held = api.getHeldItem(myId)
    held.attributes.customAttributes.enchantments.Damage++
    dmg = held.attributes.customAttributes.enchantments.Damage
    
    if(api.getAuraInfo(myId).totalAura >= dmg *150) {
    	api.applyAuraChange(myId,dmg *-150)
    	api.setItemSlot(myId,api.getSelectedInventorySlotI(myId),held.name,held.amount,held.attributes)
    }
  • とりあえず作った。 -- ryoku_ 2025-12-17 (水) 19:54:08
  • どうしてもreturnしたいならIIFEにする方法もあるゾ -- けんたき 2025-12-17 (水) 20:16:51
  • ほえー -- ryoku_ 2025-12-17 (水) 20:30:13
  • wiki運営集結してる()
    ありがとう -- Soranokami 2025-12-18 (木) 17:57:13
  • 試してみたんですけど、TypeError: cannot read property 'Damage' of underfinedになります -- Soranokami 2025-12-18 (木) 18:13:46
    let held = api.getHeldItem(myId);if (held) {    held.attributes = held.attributes || {};    held.attributes.customAttributes = held.attributes.customAttributes || {};    held.attributes.customAttributes.enchantments = held.attributes.customAttributes.enchantments || {};    let currentDmg = held.attributes.customAttributes.enchantments.Damage || 0;    held.attributes.customAttributes.enchantments.Damage = currentDmg + 1;    let dmg = held.attributes.customAttributes.enchantments.Damage;    if (api.getAuraInfo(myId).totalAura >= dmg * 150) {        api.applyAuraChange(myId, dmg * -150);        api.setItemSlot(myId, api.getSelectedInventorySlotI(myId), held.name, held.amount, held.attributes)}}
  • これで改善してできました -- Soranokami 2025-12-17-18:48:47

1.金のヘルメットをかぶっている人のゲームモードをピースフルにする 2.ネームタグを消す

nekototikuwa (2025-12-16 (火) 18:54:42)

以上


  • 完全なるピースフルはできないと思う。codeだと。ネームタグを消すやつは
    api.setTargetedPlayerSettingForEveryone( pId, "nameTagInfo", { content: [ { str:””, style: { color: "#000000" } } ], subtitle: [ { str: “”, style: { color: “#000000” } } ], }, true ); -- Soranokami 2025-12-16 (火) 19:18:53
    onInventoryUpdated = (pId) => {
    	const helmet = api.getItemSlot(pId,46)
    	if(helmet?.name === "Gold Helmet") {
    		api.setHealth(pId,null)
    		api.setTargetedPlayerSettingForEveryone(pId,"nameTagInfo",
    			{content: [{str:"",style:{color:"#000000"}}]}
    		)
    	}
    }
  • 完全なピースフルはできます。質問の内容はこれでできます。ただ解除が複雑なので必要であれば声をかけてください。 -- ryoku_ 2025-12-17 (水) 20:29:49

全プレイヤーのインベントリ内に入ってるアイテム全て削除

🦆 (2025-12-16 (火) 17:27:55)

上の通りです


  • api.clearInventory(myId)
    です -- けんたき 2025-12-16 (火) 17:34:38
  • api.getPlayerIds()したあとに
    for文でapi.clearInventory(myId)するのでは -- SushiPal 2025-12-17 (水) 10:29:21
  • getPlayerIds().forEach(pId => api.clearInventory(pId));
    これでいいと思います -- SushiPal 2025-12-17 (水) 10:46:20

手元でのクラフトの改造

hiso (2025-12-16 (火) 16:27:55)

edititemcraftingrecipesにおいて手元でできるクラフトの改造はどのように書いたらいいんでしょうか。教えてくれると幸いです。


  • すみません動作は少し違うけど別のコードを用いて代用できました -- hiso 2025-12-16 (火) 16:39:07
    api.editItemCraftingRecipes(pid,
        "Maple Wood Planks",
        [{requires:[{items:["Dirt"],amt: 1}],produces: 1,station:"Handcraft"}]
      )
  • こんなかんじでしょうかね -- yuuto 2025-12-16 (火) 18:34:51
  • ありがとうございます!!また別の機会に使ってみようと思います! -- hiso 2025-12-18 (木) 00:14:44

World Code を見れなくするコード

無能と化した暇人 (2025-12-16 (火) 03:55:54)

この前遊んだ、カスタムゲーム...だっけ? で公開されているゲームで、F8を押してもワールドコードを見ることが見れないようになっていたんです。
僕自身もコードのパクリでどうこう...とかで揉めるような話を聞いたことがあるので、できるだけ早めに対策しておきたいんです...


  • 見れなくすることはできないですね、、、Code Loaderを使うなどして対策をするしかないです -- yuuto 2025-12-16 (火) 06:57:08
  • 多分それ自分で鯖作らないと見れないやつ -- Soranokami 2025-12-16 (火) 19:10:49
  • カスタムゲームの仕様だと思ってた() -- SushiPal 2025-12-17 (水) 10:35:34
  • まぁglobalThisからのevalで殆どのことはできる。 -- ryoku_ 2025-12-17 (水) 20:30:58
  • なるほど...とりあえず、やるだけやってみよう。 みんな質問に答えてくれてありがとう! -- 無能と化した暇人 2025-12-18 (木) 01:13:11

ゴミ箱について

コマンドってムズイなあ (2025-12-15 (月) 22:53:36)

プレイヤーがアイテムを持った(選択した)状態でコードブロックをおしたら、そのアイテムは消えるという仕組みを作りたいです。お願いします


api.setItemSlot(myId,api.getSelectedInventorySlotI(myId),"Air",0,{})
  • これで いかがでしょうか -- kurikara 2025-12-16 (火) 13:52:59

/help

かい (2025-12-15 (月) 18:34:41)

(/help プレイヤー名)て打っても何ないい誰か教えてえええ


  • みすったチャットに表示されなくて誰か知ってませんか -- /help 2025-12-15 (月) 18:35:14
  • /help [playerName]がちょっと意味わからんけどplayerCommandでreturn false入れてない? -- yuuto 2025-12-15 (月) 20:30:02

ただの質問

Zero (2025-12-15 (月) 13:55:32)

買うアイテムにエンチャントがついてるコードは作れる?


const buyItem = "Diamond Sword"
const buyAmount=1
const priceItem="Gold Coin"
const priceAmount=2000
const att = {"customAttributes":{"enchantments":{"Damage":4},"enchantmentTier":"Tier 4"}}
if(api.getInventoryItemAmount(myId,priceItem)>=priceAmount){
 api.removeItemName(myId,priceItem,priceAmount)
 api.giveItem(myId,buyItem,buyAmount,att)
}else{
 api.sendMessage(myId,"You can\'t afford this!",{color:"yellow"})
}
  • こんな感じです。 -- kurikara 2025-12-15 (月) 16:26:27
  • ありがとうございます! -- Zero 2025-12-15 (月) 16:52:27

レベルアップシステムの作り方

miya (2025-12-14 (日) 16:12:00)

3キルするとレベルがアップしていき、レベル2で金の剣を、レベル3でダイヤの剣を、レベル4でナイト剣を、レベル5でAK-47を手に入れることができるコードは作れる?


onPlayerKilledOtherPlayer = attacker => {
  const killSlot = api.getMoonstoneChestItemSlot(attacker, 0)
  const levelSlot = api.getMoonstoneChestItemSlot(attacker, 1)

  let killCount = Number(killSlot?.attributes?.customDescription ?? "0")
  let level = Number(levelSlot?.attributes?.customDescription ?? "1")

  killCount++

  api.setMoonstoneChestItemSlot(attacker, 0, "Kill Spikes", 1, { customDisplayName: "killCount", customDescription: String(killCount) } )

  const newLevel = Math.floor(killCount / 3) + 1

  if (newLevel > level) {
    level = newLevel
    api.setMoonstoneChestItemSlot( attacker, 1, "Block of Emerald", 1, { customDisplayName: "killLevel", customDescription: String(level) } )

    if (level === 2) {
      api.giveItem(attacker, "Gold Sword", 1, {})
    }
    else if (level === 3) {
      api.giveItem(attacker, "Diamond Sword", 1, {})
    }
    else if (level === 4) {
      api.giveItem(attacker, "Knight Sword", 1, {})
    }
    else if (level === 5) {
      api.giveItem(attacker, "AK-47", 1, {})
    }

    api.sendMessage(attacker, `レベルアップ! Lv.${level}`)
  }
}

onPlayerMoveInvenItem = (playerId, fromIdx) => {
  if(api.getItemSlot(playerId, fromIdx)["name"] === "Kill Spikes" || api.getItemSlot(playerId, fromIdx)["name"] === "Block of Emerald"){
    return "preventChange"
  }
}

onPlayerDropItem = (playerId, x, y, z, itemName, itemAmount, fromIdx) => {
  if(api.getItemSlot(playerId, fromIdx)["name"] === "Kill Spikes" || api.getItemSlot(playerId, fromIdx)["name"] === "Block of Emerald"){
    return "preventDrop"
  }
}
  • これでいいですか? -- yuuto 2025-12-14 (日) 17:23:40
  • ありがとうございます。 -- miya 2025-12-14 (日) 19:37:30

痛いブロック

USB2025 (2025-12-13 (土) 13:53:35)

特定のブロックに触れるとダメージを受けるワールドコードが欲しい


  • 触れるの定義を教えてください -- yuuto 2025-12-15 (月) 16:55:39
  • 赤いコンクリートで -- USB2025 2025-12-20 (土) 18:49:38

急ぎとバグ?発見

Soranokami (2025-12-12 (金) 20:43:54)

ポーションの持続時間のやつが機能しないんですがどうしたら治りますかね?bloxdのゲームの方のバグかなって疑っているんですがわからないんですよ。
api.setClientOption(playerId, "potionEffectDuration", 12000);

api.setClientOption(playerId, "thrownPotionEffectDuration", 8000);


api.setClientOption(myId, "potionEffectDuration", 12000);

api.setClientOption(myId, "splashPotionEffectDuration", 8000);//thrownPotionEffectDurationではなくsplashPotionEffectDuration
  • このcodeでやってみたところ、Hasteなどの一部の効果を除いてしっかりと機能しましたよ -- kurikara 2025-12-12 (金) 21:41:32
  • てか君昨日質問してなかった?急ぎだからって3日の制限を破っていいわけじゃないんだよ? -- yuuto 2025-12-13 (土) 07:09:13
  • バグかなって思ってコメントでやるのもアレかなって思って -- Soranokami 2025-12-13 (土) 07:17:49
  • 君これで2回目だから次やったら規制される可能性があるよ -- yuuto 2025-12-13 (土) 07:33:37
  • じゃあバグ発見とかはどこでやればいいですか -- Soranokami 2025-12-13 (土) 11:33:07
  • そういうときはAIなどに聞いて下さい -- yuuto 2025-12-13 (土) 12:43:06

モブに関して

a (2025-12-12 (金) 14:46:35)

一定間隔毎にアイテムを持ち替えて使用させるコードはありますか?

可能であればモブのドロップ品を変える方法も教えて頂きたいです


api.setDefaultMobSetting("Draugr Zombie", onDeathItemDrops, [ { itemName: "Moonstone Orb", probabilityOfDrop: 1, dropMinAmount: 1, dropMaxAmount: 3, }, ]
  • モブのドロップ品を変えるコードはこれです -- yuuto 2025-12-12 (金) 15:49:03
const changeTime = 200 //秒数×20で指定
let counter = 0
const mobsToChange = "Cave Golem" //変えたいモブの名前
const itemsToChange = [["Moonstone Orb",10],["Wood Sword",2],["Blinding Pebble",10],["Bouncy Bomb",10]]//["使用するアイテム",攻撃の範囲(飛び道具は広めに取る)]
tick = (ms) => {
	counter++
	if (counter % changeTime == 0){
		mId = api.getMobIds()
		num = (counter/changeTime) % itemsToChange.length
		for (const i of mId){
			if (api.getEntityType(i) == mobsToChange){
				const item = itemsToChange[num][0]
				const time = itemsToChange[num][1]
				api.setMobSetting(i, "heldItemName", item)
				api.setMobSetting(i, "attackItemName", item)
				api.setMobSetting(i, "attackRadius", time)
			}
		}
	}
}
  • こんな感じでどうでしょうか? -- kurikara 2025-12-12 (金) 19:08:35
  • ありがとうございます! -- a 2025-12-13 (土) 09:14:09
  • すいません ドロップを変えるコードがエラーを吐きます -- a 2025-12-13 (土) 09:25:36
api.setDefaultMobSetting("Draugr Zombie", "onDeathItemDrops", [{ itemName: "Moonstone Orb", probabilityOfDrop: 1, dropMinAmount: 1, dropMaxAmount: 3},])
  • これでどうでしょう? -- kurikara 2025-12-13 (土) 11:48:43
  • ありがとうございます🙇 -- a 2025-12-13 (土) 14:18:21

浮いている文字

Haru (2025-12-11 (木) 21:39:41)

Steal a Petの浮いている文字のやり方を教えて欲しいです。


  • 過去の質問にあります。投稿するときはよく確認してから投稿するようにしてください。 https://discord.com/channels/804347688946237472/1385357084937289881/1385357084937289881 こちらです。 -- yuuto 2025-12-11 (木) 21:47:24
  • すみません -- Haru 2025-12-11 (木) 21:55:57
  • Discordのアカウント持ってなくて見れません -- Haru 2025-12-11 (木) 21:57:05
  • ではhttps://d.kuku.lu/mr2mnze7h ここからhtmlをダウンロードしてください。discordのやつを保存したものが入ってます。英語版(原文)とGoogle翻訳を使用したものがあるのでお好きな方をどうぞ。 -- yuuto 2025-12-12 (金) 06:41:23
  • 何度もすみません。なぜかファイルのなかが見れません。ここに codeを載せてもらうことは可能でしょうか? -- Haru 2025-12-18 (木) 17:54:05

caneditcodeのコードの間違い

(2025-12-11 (木) 20:02:11)

onPlayerJoin = (pId, reset) => {
i = "edit"
i += "ItemCraftingRecipes"
const editCraft = api[i]
editCraft(pId,
	["Stone", "Dirt"],
	[{requires:[{items:["White Concrete"],amt: 1}],produces: [10, 40],station:"Workbench"}]
)
}

このコードのどこが間違っているのでしょうか?


  • 名前挿入忘れましたが私の質問です -- yuki9125 2025-12-11 (木) 20:02:34
    onPlayerJoin = pid => {
      api.editItemCraftingRecipes(pid,
        "Stone",
        [{requires:[{items:["White Concrete"],amt: 1}],produces: 10,station:"Workbench"}]
      )
    
      api.editItemCraftingRecipes(pid,
        "Dirt",
        [{requires:[{items:["White Concrete"],amt: 1}],produces: 40,station:"Workbench"}]
      )
    }
  • 正しくはこうなります。editItemCraftingRecipesでは、一度に複数のアイテムのクラフトレシピを変更することはできません。あとこれはエラーとは関係ないのですが、ワールドコードでは規制がされないので規制回避をする必要はありません。 -- yuuto 2025-12-11 (木) 20:10:00

モブがアイテム使用する

Soranokami (2025-12-11 (木) 16:16:20)

急ぎです。モブに弓矢持たせて撃たせるとかできますか?


mobType = "Draugr Zombie"
api.setDefaultMobSetting(mobType, "heldItemName", "Diamond Bow")
api.setDefaultMobSetting(mobType, "attackItemName", "Arrow")
api.setDefaultMobSetting(mobType, "attackRadius", 10)
  • これでできると思います。ダメージはデフォルトのままなので変えたい場合はattackDamageで調整してください -- yuuto 2025-12-11 (木) 16:39:35
  • ありがとうございます。エンパなどの他のアイテム使用はできませんかね? -- Soranokami 2025-12-11 (木) 16:47:12
mobType = "Draugr Zombie"
api.setDefaultMobSetting(mobType, "heldItemName", "Moonstone Orb")
api.setDefaultMobSetting(mobType, "attackInterval", 3000)
api.setDefaultMobSetting(mobType, "secondaryAttackRadius", 10)
api.setDefaultMobSetting(mobType, "secondaryAttackItemName", "Moonstone Orb")
  • 一応これでできるかと
    ただエンパの使用で体力が削れるので別途体力を増やすことが推奨です -- kurikara 2025-12-11 (木) 18:38:05
  • 他にはどんなアイテムが使用できますか -- Soranokami 2025-12-11 (木) 19:06:20
  • ボールとかも使えると思いますよ -- yuuto 2025-12-11 (木) 21:48:59
  • ブロック破壊やブロック使用などはできませんかね -- Soranokami 2025-12-12 (金) 19:25:05
  • できません -- けんたき 2025-12-13 (土) 10:23:03

指定のプレイヤーだけが指定のBlockをすり抜ける

snow (2025-12-11 (木) 08:57:18)

指定したプレイヤーだけがガラスをすり抜けるcodeを教えてください


playerList = ["player1", "player2"]
onPlayerJoin = pid => {
  if(playerList.includes(api.getEntityName(pid))){
    api.setWalkThroughType(pid, "Glass", false)
  }
}
  • ありがとうございます -- snow 2025-12-14 (日) 20:29:16

アイテムの補充に関して

miyadai (2025-12-10 (水) 20:23:50)

前にアイテムの補充についてのコードが書かれていたと思うんですけど、アイテムの補充の際にそのアイテムが出る確率を設定することは可能でしょうか?
例:SSR→ダイヤ剣 SR→金剣 R→鉄剣のようなかんじです。


  • 具体的な確率を教えて下さい。例: ダイヤ剣30%など -- けんたき 2025-12-10 (水) 21:16:32
    const outer = {
      "R": 0.6, //レア度Rが出る確率
      "SR": 0.3, //レア度SRが出る確率
      "SSR": 0.1  //レア度SSRが出る確率
    };
    
    const inner = {
      "R": {
        "Iron Sword": 1.0,
      },
      "SR": {
        "Gold Sword": 1.0
      },
      "SSR": {
        "Diamond Sword": 0.1,
        "Diamond Pickaxe": 0.1,
        "Diamond Hoe": 0.8
      }
    };
    let lootList = [];
    let tickCount = 0;
    
    function pickByProb(probMap) {
      const entries = Object.entries(probMap);
      const total = entries.reduce((sum, [, p]) => sum + p, 0);
      const r = Math.random() * total;
      let acc = 0;
      for (const [key, p] of entries) {
        acc += p;
        if (r < acc) return key;
      }
      return entries[entries.length - 1][0];
    }
    
    function  pullGacha() {
      const category = pickByProb(outer);
      const item = pickByProb(inner[category]);
      return { category, item };
    }
    
    function setLoots(playerId, config = {
      slot: 1,
      amt: 1,
      interval: 10,
      defaultInterval: 10
    }) {
      lootList.push({
        id: playerId,
        slot: config.slot,
        amt: config.amt,
        interval: config.interval,
        defaultInterval: config.defaultInterval
      });
    }
    
    tick = () => {
    	tickCount++
    	if(tickCount %10 === 0) {
    		for(const loot of lootList) {
    			loot.interval -= 0.5
    			if(loot.interval <= 0) {
            const item = pullGacha().item;
    				api.setItemSlot(loot.id,loot.slot,item,loot?.amt ?? 1)
    				loot.interval = loot.defaultInterval
    			}
    		}
    	}
    }
  • これでどうでしょうか?outer → innerの順に抽選します -- けんたき 2025-12-10 (水) 21:58:45
  • 作ってくれてありがとうございます。NとURも設定してくれませんか? -- miyadai 2025-12-10 (水) 22:22:47
  • あとこれをコードブロックに入れても何も起きなかったのですが、ためしてみてくれませんか? -- miyadai 2025-12-10 (水) 22:24:30
  • ワールドコードに上のやつ入れて、setLoots(myId)とコードブロックで実行すればとりあえず動くと思います。詳しいことは明日 -- けんたき 2025-12-10 (水) 23:59:39
  • NとURは入れなくていいので、このコードを実行するのにクールダウンをつけてほしいのですが、できますか? -- miyadai 2025-12-11 (木) 09:14:15

あるプレイヤーを入った瞬間バンするcode

亡霊 (2025-12-09 (火) 21:12:24)

できる限り早くよろしく


  • バンじゃなくてずっとキルでも良き -- 2025-12-09 (火) 21:13:18
    const banned_list = ["player_name1","player_name2"]
    onPlayerJoin = (pId, F) => {
      if (banned_list.includes(api.getEntityName(pId))){
        api.kickPlayer(pId,`あなたはBANされています`)
      }
    }
  • こういう感じですかね. -- kurikara 2025-12-09 (火) 21:42:04
  • api.kickPlayerのところをapi.kickPlayer(pId, "あなたはbanされています。")とかにしたほうがいいと思う -- yuuto 2025-12-09 (火) 21:50:29
  • そうですね、ご指摘ありがとうございます -- kurikara 2025-12-09 (火) 21:58:00
  • これだと名前を変えられたらは入れちゃうからムンチェをその鯖で使えなくしてbanしたい人のムンチェの中に何かアイテムを入れてそのアイテムを持っている人だけがkickされるようにした方がいいんじゃない?code詳しいから作り方はよくわからないけど -- とまと 2025-12-10 (水) 18:11:09
  • DBID BANの方が良くね -- Soranokami 2025-12-10 (水) 18:20:24
    DbId Ban
    const bannedDbIdList = ["player_DbId_1","player_DbId_2"]
    //DbId取得はapi.getPlayerDbId(api.getPlayerId("プレイヤー名"))
    onPlayerJoin = pid => {
      if (bannedDbIdList.includes(api.getPlayerDbId(pid))){
        api.kickPlayer(pid, "あなたはbanされています")
      }
    }
    むんチェban
    onPlayerJoin = pid => {
      slotItem = api.getMoonstoneChestItemSlot(pid, 0)
      if(slotItem?.attributes?.customDisplayName === "Banned"){
        api.kickPlayer(pid, "あなたはbanされています")
      }
    }
    
    function ban(pName) {
      pid = api.getPlayerId(pName)
      api.setMoonstoneChestItemSlot(pid, 0, "Dirt", 1, {customDisplayName: "Banned"})
      api.kickPlayer(pid, "You are banned")
    }
  • function bannedはふさわしくないと思う。function banで良くない? -- ryoku_ 2025-12-10 (水) 20:48:19

あのマイクラのgiveコマンドをワールドコードでおねがいします

jp_hello_world19 (2025-12-08 (月) 20:28:17)

/give アイテム名
みたいな...

爆弾とアイスブリッジとフロアクリエイターは出せないように


const notAllowedItems = ["Moonstone Explosive", "Ice Bridge", "Floor Creator"];

playerCommand = (pid, cm) => {
  if (!cm.startsWith("give")) return;
  const match = cm.match(/^give\s+"([^"]+)"\s+(\d+)$/);
  if (!match) {
    api.sendMessage(pid, `/give "アイテム名" 数 の形式で入力してください`);
    return;
  }
  const itemName = match[1];
  const amount = Number(match[2]);
  if (notAllowedItems.includes(itemName)) {
    api.sendMessage(pid, `${itemName} は使用禁止アイテムです!`);
    return;
  }
  api.giveItem(pid, itemName, amount, {});
  api.sendMessage(pid, `${itemName} を ${amount} 個付与しました!`);
};
  • /give "アイテム名" 数 の形式で入力してください。
    例:/give "Gold Coin", 1 -- yuuto 2025-12-08 (月) 20:45:36
  • /giveじゃなくて//giveになってる -- jp_hello_world19 2025-12-09 (火) 17:57:25
  • なおした -- yuuto 2025-12-09 (火) 18:08:12

即死ポーションを

タイタン (2025-12-08 (月) 17:32:06)

人狼で即死ポーションが欲しいのですがcodeやり方がよくわからないので誰か教えてください


  • 負傷のポーションにコードでエンチャントつけたものを人狼にのみ配布するようなコードってことかな。 -- ゾンビ君 2025-12-09 (火) 21:52:21
    ワールドコード
    let dying = []
    onPlayerStartChargingItem = (pId, item) => {
    	const held = api.getHeldItem(pId)
    	if(held?.attributes?.customDisplayName == "死亡薬") {
    		dying.push(pId)
    	}
    }
    
    onPlayerFinishChargingItem = (pId, used, item, duration) => {
    	if(!used) {
    		dying.shift(pId)
    	}else if(dying.includes(pId)) {
    		api.setHealth(pId,0)
    	}
    }
    コードブロック
    api.giveItem(myId,"Instant Damage Potion",1,{customDisplayName:"死亡薬"})
  • でとりあえず死にます。もっと特殊な死に方とか欲しければ言ってください。 -- ryoku_ 2025-12-10 (水) 06:37:47
  • ありがとうございます。 -- タイタン 2025-12-10 (水) 12:17:18
  • あの、これをスプラッシュポーションにして欲しいのと何故か死にません -- タイタン 2025-12-10 (水) 12:28:11
    ワールドコード
    onPlayerDamagingOtherPlayer = (attacker, damager, damage, item, bodyPartHit, damagerDbId) => {
    	if(attacker === damager) {
    		return(0)
    	}else if(item === "Instant Damage Potion") {
    		api.setHealth(damager,0)
    	}
    }
  • スプラッシュが良いならこれでいけます。人狼が使うとのことですので人狼は死なないようにしてます。 -- ryoku_ 2025-12-10 (水) 16:52:32
  • ありがとうございます -- タイタン 2025-12-10 (水) 17:07:30

モブの自然スポーン

Soranokami (2025-12-08 (月) 16:39:49)

特定のモブ(ここでは豚)を、地面に埋まらないようにプレイヤーの半径32ブロック以上128ブロック未満に定期的に沸かせることはできますか?簡単にいうと、bloxdの元からあるmobのスポーンシステムをどのブロックの上でも働くようにしたいという事です。


//スポーン間隔を設定 10,60のところで秒を指定
const spawnTimeMin = 10 * 40
const spawnTimeMax = 60 * 40
//スポーン範囲を設定 それぞれに最小・最大座標を入れてその範囲にモブがすぽーんするようにする
const mobSpawnAreaMin = [-200,-99,-200]
const mobSpawnAreaMax = [ 200,100,200]

function random(min, max){
  return Math.floor(Math.random() * (max - min + 1)) + min
}
function randomPos(minArr, maxArr){
  return [random(minArr[0], maxArr[0]),random(minArr[1], maxArr[1]),random(minArr[2], maxArr[2]),]
}

let nextSpawnTime = random(spawnTimeMin, spawnTimeMax)
let tickCount = 0
let mob = "Pig"
tick = () => {
  if (tickCount >= nextSpawnTime) {
    let pos = randomPos(mobSpawnAreaMin, mobSpawnAreaMax)
    let block = api.getBlock(...pos)
    let underBlock = api.getBlock(pos[0], pos[1] - 1, pos[2])
    if (block === "Air" && underBlock !== "Air" ) {
      api.attemptSpawnMob(mob, ...pos, {})
      api.broadcastMessage(`${mob}が ${pos} に出現!`)
    }
    nextSpawnTime = tickCount + random(spawnTimeMin, spawnTimeMax)
  }
  tickCount++
}
  • どうですか?一応自分で試してはみましたけど、なんかエラーが出たら言ってください。 -- yuuto 2025-12-08 (月) 17:25:19
  • これだと高い位置からのスポーンになるので、高い位置からのスポーンではなく、地面についた状態、そして空気がある場合のみにして欲しいです -- Soranokami 2025-12-08 (月) 17:54:39
  • function onWorldAttemptSpawnMob(mobType, x, y, z) { var chance = Math.floor(Math.random() * 10); if (chance = 1) { api.attemptSpawnMob("Draugr Zombie", x, y, z); return "preventSpawn"; } else { return "preventSpawn"; }}これでまあできるんですけど、これだとスポーンしすぎてバグるので、そこお願いします -- Soranokami 2025-12-08 (月) 18:18:06
  • ちょっとかえてみました。どうですか? -- yuuto 2025-12-08 (月) 19:06:31
  • 使えましたありがとうございます。 -- Soranokami 2025-12-09 (火) 16:00:17

Callbackの書き方

SushiPal (2025-12-08 (月) 09:49:08)

Callbackって
function [callback名](引数) {}と書く人と
[callback名] = (引数) => {}って書く人がいるじゃないですか
具体的に何が違ったりするとかあるんですか?みなさんは基本的にどちらを使っていますか?


  • callbackのページの方では[callback名] = (引数) => {}の方か -- SushiPal 2025-12-08 (月) 09:50:09
  • あ、いや別に...。実はかなり情報が限られていた状態のものを整えたのが僕で、あちらがアロー関数なのは単純に僕の好みなんです。 -- ryoku_ 2025-12-08 (月) 16:20:14
  • ちなみに僕がそうする理由としてはfunctionで作った自作関数と区別するためです。 -- ryoku_ 2025-12-08 (月) 16:20:54
  • なるほど。回答ありがとうございます -- SushiPal 2025-12-17 (水) 10:33:15

アイテム補充のあれ

無能と化した暇人 (2025-12-07 (日) 16:16:22)

また例のPvP鯖についての質問です。
パイレーツとかのゲームモードである、ファイアボールなどのアイテムを一定時間ごとにプレイヤーのインベントリに補充するコードってありますかね?
この世界のどこかにはあると思うんですけど、自分じゃ見つけられなくて...
そんな事ができるコード、知ってる人いませんか?


ワールドコード

globalThis.setLoots = []
tickCount = 0
tick = () => {
	tickCount++
	if(tickCount %10 === 0) {
		for(const loot of globalThis.setLoots) {
			loot.interval -= 0.5
			if(loot.interval <= 0) {
				api.setItemSlot(loot.id,loot.slot,loot.name,loot?.amt ?? 1)
				loot.interval = loot.defaultInterval
			}
		}
	}
}

コードブロック

globalThis.setLoots.push({id:myId,name:"Fireball",slot:4,amt:5,interval:10,defaultInterval:10})
  • ゾンビ君は言いました、"ないなら作りましょうw" -- ryoku_ 2025-12-07 (日) 19:36:26
  • 俺? -- ゾンビ君 2025-12-07 (日) 19:54:59
  • いろいろなテクニック集で言ってなかったっけ?ほら、影作るやつ -- ryoku_ 2025-12-07 (日) 21:13:39
  • ほんとだw -- ゾンビ君 2025-12-07 (日) 21:35:16

隣接したブロック

carubo (2025-12-07 (日) 15:05:07)

特定のブロックが隣接しているか確認するapi関数みたいなのってありますか?


ワールドコード

function getAdjacentBlocks (pos,isIgnoreAir) {
	const [x,y,z] = pos
	let results = []
	for(let checkPos of [[x-1,y,z],[x+1,y,z],[x,y+1,z],[x,y-1,z],[x,y,z+1],[x,y,z-1]]) {
		result = api.getBlock(checkPos)
		if(!(result === "Air" && isIgnoreAir)) {
			results.push(result)
		}
	}
	return(results)
}

function isAdjacentBlock (pos,blockName) {
	const [x,y,z] = pos
	for(let checkPos of [[x-1,y,z],[x+1,y,z],[x,y+1,z],[x,y-1,z],[x,y,z+1],[x,y,z-1]]) {
		if(api.getBlock(checkPos) === blockName) {
			return(true)
		}
	}
	return(false)
}

コードブロック

//exsample result Log: ["Red Ceramic|meta|rot4","Grass Block","Red Ceramic|meta|rot4"]
api.log(getAdjacentBlocks(thisPos,true))
//exsample result Log: true
api.log(isAdjacentBlock(thisPos,"Grass Block"))
  • でいけます -- ryoku_ 2025-12-07 (日) 19:18:39

api.attemptApplyDamageががちでわかりません...

ひるのかみ... (2025-12-07 (日) 11:37:30)

api.attemptApplyDamage...なんなんですか?こいつ
どんなかんじに設定すればいいのかがわからなくて....
expect object みたいなエラーが毎回出るんですよね...
誰か教えてくれませんか...;-;


  • あれ僕はあんまり使わないですね...。なんか扱いにくいっていうか。 -- ryoku_ 2025-12-07 (日) 18:36:19
  • setHealthかapplyHealthChangeで基本的に代用できるので個人的にそちらをおすすめします。 -- ryoku_ 2025-12-07 (日) 18:36:52
  • 逆に俺はよく使います -- けんたき 2025-12-07 (日) 20:42:44
    api.attemptApplyDamage({
      eId: ID, //攻撃者側のID
      hitEId: ID, //ダメージを受けるエンティティのID
      attemptedDmgAmt: damage, //ダメージ(数値)
      withItem: "Diamond Sword" //使うアイテム
    })
  • これ以外にも色々設定できるけど、ただダメージを与える用途で使うのであればこれで十分 -- けんたき 2025-12-07 (日) 20:46:44
  • あ、全部ひとつの{}にするんだ。へー -- ryoku_ 2025-12-07 (日) 21:14:14

進化系モンスター

USB2025 (2025-12-06 (土) 20:49:11)

特定のmobが4んだとき、進化するようにしたい。
方法は特定のmobが4んだとき、そこにすぐ他のmobが召喚される.....的な?


ワールドコード

const nextMobs = {
	"Draugr Zombie": "Frost Zombie",
	"Frost Zombie": "Draugr Skeleton",
	"Draugr Skeleton": "Frost Skeleton",
	"Frost Skeleton": "Cave Golem",
	"Cave Golem": "Frost Golem",
	"Frost Golem": "Magma Golem",
	"Magma Golem": "Draugr Huntress",
	"Draugr Huntress": "Draugr Knight"
}

onMobKilledOtherMob = (killerMob, diedMob, damage, item) => {
	nextMob(diedMob)
}

onPlayerKilledMob = (pId, mId, damage, item) => {
	nextMob(mId)
}

function nextMob (mId) {
	const mobType = api.getEntityType(mId)
	const mobPos = api.getPosition(mId)
	const nextMob = nextMobs[mobType]
	if(nextMob !== undefined) {
		api.attemptSpawnMob(nextMob,...mobPos,{})
	}
}
  • これ面白いっすね。こういう質問ばっかり受けてたいな() -- ryoku_ 2025-12-07 (日) 19:50:49
  • ワールドコードにぶっこんでから一番上のところをいじってくださいね。 -- ryoku_ 2025-12-07 (日) 19:51:22
  • ありがとうござい(あと喋り方ワイルドなの気に入る) -- USB2025 2025-12-07 (日) 21:37:05

通常では入手できないエンチャントがついた武器の入手法

syu_mal (2025-12-06 (土) 19:23:36)

damageXのエンチャントがついたダイヤ剣を出したいんですけどできますか?


  • api.giveItem( myId, "Diamond Sword", 1, { "customAttributes": { "enchantments": { "Damage": 3}, "enchantmentTier": "5", } }) -- USB2025 2025-12-06 (土) 20:32:16
  • コードブロックで出すならコレ -- USB2025 2025-12-06 (土) 20:32:48
  • ちょっとダイヤの剣の見た目とかが変になったけどちゃんと機能するで! -- USB2025 2025-12-06 (土) 20:37:02
  • エンチャント剣の見た目が変になったのはTierの指定方法が間違っているからです。「enchantmentTier」の部分を"5"ではなく"Tier 5"にしてください。 -- yuki9125 2025-12-06 (土) 21:46:48
  • enchantmentTierは"Tier 5"みたいに数字の前にTierを入れないとちゃんと機能しないよ -- けんたき 2025-12-06 (土) 21:49:21
let type = "Diamond Sword"
api.giveItem(myId,type,1,{
	customAttributes: {
		enchantments: {"Damage": 3},
		enchantmentTier: "Tier 5",
	}
})
  • これだけでいいのに... -- ryoku_ 2025-12-07 (日) 19:55:31
  • Damage 3ではなく5では -- SushiPal 2025-12-08 (月) 09:35:53
  • あ、10か -- SushiPal 2025-12-08 (月) 13:31:44

まるぱくりのcodeについて

kangan_love (2025-12-06 (土) 17:37:14)

「完全版ボスサバイバル」のメイスcodeが「shopありのサバイバル」でパクられてます。
ボスサバイバルのcodeには「パクったら処す」としか書いてないので、
ライセンス?みたいなものはないと思うんですけど、
これって法に触れるんですかね?


  • 無断でコピーすると著作権法違反(著作権法21条)になります。ちなみにコードは作成した時点で著作権が発生します -- けんたき 2025-12-06 (土) 17:52:43
  • 題名と名前逆っすね -- yuuto 2025-12-06 (土) 18:36:14
  • あっほんとだ、、、恥ずかしいので直します -- kangan_love 2025-12-06 (土) 19:48:03

プレイヤーが所持しているアイテムの名前等を結果として返す

hiso (2025-12-05 (金) 20:32:25)

プレイヤーが所持しているアイテムの名前(プレイヤーが独自に付けた名前等)を結果として返すようなcodeはどのようにすればいいのでしょうか。誰か教えてくれるととても嬉しいです。


  • api.getHeldItem() ですね。アイテム自体の名前は name キーにあり、プレイヤーがつけた名前は attributes.customDisplayName に入っています -- けんたき 2025-12-05 (金) 23:47:17
    function getItemName(pid){
      const held = api.getHeldItem(pid)
      if (!held || !held.name) {
        return "アイテムを持っていません"
      }
      const itemName = held.name
      const customName = held.attributes?.customDisplayName ?? "カスタムなし"
      return `アイテム:${itemName}\nカスタム名:${customName}`;
    }
  • こんなかんじですかね。getItemName(playerId)をコードブロックで呼べば確認できますよ -- yuuto 2025-12-06 (土) 07:09:44
  • わかりやすく解説までありがとうございます!! -- hiso 2025-12-06 (土) 11:49:48

日本語部分を書くと文字化けする

SushiPal (2025-12-05 (金) 15:35:13)

こちらのCodeに日本語部分(sendMessage)を入力すると文字化けします。
多分どこかに規制用語が入っているのだと思いますCode
治し方を教えていただけたら幸いです


  • writening.netつかったらインデントが消えましたね。インデントはしっかりはいっています -- SushiPal 2025-12-05 (金) 15:50:41
  • getStandardChestItemSlotだと思います。api["getStandardChest" + "ItemSlot"]にするとできると思いますよ。 -- yuuto 2025-12-05 (金) 16:50:17
  • 回答ありがとうございます!
    ちょうど自己解決してコメントしようと思っていたところでしたが -- SushiPal 2025-12-05 (金) 22:54:10
  • わざわざ変数を使わなくても[]の中で結合すればいいのですね!参考になりました。 -- SushiPal 2025-12-08 (月) 09:37:27

刑務所みたいなの

ヤマタノオロチ (2025-12-03 (水) 19:03:33)

刑務所みたいにある場所だけアドベンチャーモードにするみたいなのってできますか できれば自分は除いて欲しいです。


  • #code([JS][,number|nonumber]){{api.setCantChangeBlockRect(playerId,[x, y, z],[x,y,z]);}}
    でできると思います。xとyとzは各自で実行してください。 -- SushiPal 2025-12-06 (土) 15:14:20
  • あれコメント欄にCodeを書くのは管理者じゃないとできないのかな -- SushiPal 2025-12-06 (土) 15:14:56
  • api.setCantChangeBlockRect(playerId,[座標1],[座標2]);
    座標1と座標2の部分は[x, y, z]の形式でできます。
    あとこれをスポーンしたときと参加したときに実行する必要があります。Callbackのページにそこは書いてあります -- SushiPal 2025-12-06 (土) 15:20:45
  • ありがとうございます -- ヤマタノオロチ 2025-12-06 (土) 16:35:52

ワールド鯖にある[//]からはじまる自分で作れるコマンドのやりかた

raimu (2025-12-03 (水) 18:12:20)

ワールド鯖にたまにある特定のコマンドorチャットを入力することで何かを起こすのをどうすればいいのでしょうか。
お願い致します。


  • とある鯖で見た[//役職;なんちゃらかんちゃら]と打つとその役職になれる みたいなやつを作ってみたいのです。 もし文章がながければごめんなさい。 -- 2025-12-03 (水) 18:16:23
  • onPlayerChatで引数のmessageをif文で照合すればできます -- SushiPal 2025-12-05 (金) 15:40:28
  • コードブロックの書き方がわからないからCodeのせられない! -- SushiPal 2025-12-05 (金) 15:57:59
    post = ["Villager", "WereWolf"]
    playerData = {}
    playerCommand = (pid,cm) => {
      if(cm.startsWith("/役職 ")){
        arr = cm.split(' ');
        if(post.indexOf(arr[1]) !== -1){
          try{ tpid = api.getPlayerId(arr[2]) } catch(e) { api.sendMessage(pid, "プレイヤー名が間違っています"); return; }
          if(tpid == null || tpid == undefined) return;
          playerData[tpid] = { post : arr[1] }
          api.broadcastMessage(` ${api.getEntityName(tpid)} の役職を ${cm} にしました `)
        }else {
          api.sendMessage(pid, "その役職名はオブジェクトに入っていません")
        }
      }
    }
  • コマンドにしたいならplayerCommand=(playerId, command) => {}を使ったほうがいいかも -- けんたき 2025-12-05 (金) 18:51:46
  • そうだ -- yuuto 2025-12-05 (金) 18:56:19
  • playerCommandにしたつもりが、、onPlayerChatに引っ張られて、、 -- yuto 2025-12-05 (金) 18:56:46
  • ごめんなさい! -- SushiPal 2025-12-08 (月) 09:38:29