docs(AOneBlock): explain phase weights and add a phase customization guide - #85

Merged
tastybento merged 1 commit into
masterfrom
docs/aoneblock-phase-customization
Aug 2, 2026
Merged

docs(AOneBlock): explain phase weights and add a phase customization guide#85
tastybento merged 1 commit into
masterfrom
docs/aoneblock-phase-customization

Conversation

@tastybento

Copy link
Copy Markdown
Member

Why

An admin asked:

in the phases config, what do the numbers represent... as in the numbers after the Material or Entity... I know it is not the number that spawn over the phase, is it a weighting?

They were right, and there was nowhere in the docs that said so. The overview page called them "relative probability" in one tabbed panel, and never mentioned that blocks:, mobs: and custom-blocks: all draw from a single shared pool — so a mob weight is directly comparable to a block weight and pushes every block's percentage down.

What

New page — gamemodes/AOneBlock/Phases.md, "Customizing Phases", added to the nav under AOneBlock. It covers:

  • The three kinds of number in a phase file and how to tell them apart: weights (blocks/mobs/custom-blocks), positions (fixedBlocks/holograms keys), and the section name (the top-level '0': key).
  • Weights in depth — the weight ÷ phase total formula, a worked example using the exact Winter phase the admin quoted, a table of the real shipped Plains percentages showing blocks and mobs interleaved in one pool, why only the ratio matters, and tuning recipes.
  • CHEST as a special case: its weight is the chance of a chest, and rarity is a second roll at the hard-coded 62/25/9/4.
  • fixedBlocks and holograms positions, CHEST_WITH_<ITEM>, and the support-block caveat.
  • phases_index.yml order/length, and that file-name numbers are only a hint now.
  • Commands, placeholders and requirements.
  • Chests, with the "build them in game with setchest" advice.
  • Custom blocks — including that probability: is a weight in the same pool — and the quoting and spawner-timing gotchas.
  • Version gating at phase, block and mob level.
  • A step-by-step "build a new phase" walkthrough.
  • A troubleshooting table keyed off the actual log messages the addon emits.

Overview page fixes (gamemodes/AOneBlock/index.md):

  • blocks tab now says "weight", explains the raffle, and notes CHEST's two-stage roll.
  • mobs tab gains a warning that mob weights share the block total, with the real Plains numbers.
  • Custom Blocks tab notes that probability is a weight in the same pool, and documents the custom-blocks: sibling list.
  • A pointer to the new page at the top of "Phase Config Files".

Companion change in AOneBlock itself rewrites the comments in the shipped 0_plains.yml, which is where admins look first.

mkdocs build passes; all new internal links and anchors resolve.

…guide
Admins had no way to find out what the numbers after a Material or
EntityType in a phase file mean. They are relative weights in a single
raffle - not counts and not percentages - and blocks, mobs and
custom-blocks all draw from that same pool. None of that was written
down anywhere.
Adds a dedicated "Customizing Phases" page covering the three distinct
kinds of number in a phase file, the weighted pool with worked examples
and tuning recipes, chest rarity, fixedBlocks/holograms positions,
phases_index.yml order and length, commands, requirements, custom
blocks, version gating, building a phase from scratch, and a
troubleshooting table keyed off the actual log messages.
Also corrects the AOneBlock overview page, which described weights only
as "relative probability" and did not mention that mob weights count
towards the same total as block weights.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017zwLryefnJ6wG76JmYNamx
@tastybento
tastybento merged commit 8fea1b4 into masterAug 2, 2026
1 check passed
@tastybento
tastybento deleted the docs/aoneblock-phase-customization branch August 2, 2026 16:55
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@tastybento
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

docs(AOneBlock): explain phase weights and add a phase customization guide - #85

Merged
tastybento merged 1 commit into
masterfrom
docs/aoneblock-phase-customization
Aug 2, 2026
Merged

docs(AOneBlock): explain phase weights and add a phase customization guide#85
tastybento merged 1 commit into
masterfrom
docs/aoneblock-phase-customization

Conversation

@tastybento

Copy link
Copy Markdown
Member

Why

An admin asked:

in the phases config, what do the numbers represent... as in the numbers after the Material or Entity... I know it is not the number that spawn over the phase, is it a weighting?

They were right, and there was nowhere in the docs that said so. The overview page called them "relative probability" in one tabbed panel, and never mentioned that blocks:, mobs: and custom-blocks: all draw from a single shared pool — so a mob weight is directly comparable to a block weight and pushes every block's percentage down.

What

New page — gamemodes/AOneBlock/Phases.md, "Customizing Phases", added to the nav under AOneBlock. It covers:

  • The three kinds of number in a phase file and how to tell them apart: weights (blocks/mobs/custom-blocks), positions (fixedBlocks/holograms keys), and the section name (the top-level '0': key).
  • Weights in depth — the weight ÷ phase total formula, a worked example using the exact Winter phase the admin quoted, a table of the real shipped Plains percentages showing blocks and mobs interleaved in one pool, why only the ratio matters, and tuning recipes.
  • CHEST as a special case: its weight is the chance of a chest, and rarity is a second roll at the hard-coded 62/25/9/4.
  • fixedBlocks and holograms positions, CHEST_WITH_<ITEM>, and the support-block caveat.
  • phases_index.yml order/length, and that file-name numbers are only a hint now.
  • Commands, placeholders and requirements.
  • Chests, with the "build them in game with setchest" advice.
  • Custom blocks — including that probability: is a weight in the same pool — and the quoting and spawner-timing gotchas.
  • Version gating at phase, block and mob level.
  • A step-by-step "build a new phase" walkthrough.
  • A troubleshooting table keyed off the actual log messages the addon emits.

Overview page fixes (gamemodes/AOneBlock/index.md):

  • blocks tab now says "weight", explains the raffle, and notes CHEST's two-stage roll.
  • mobs tab gains a warning that mob weights share the block total, with the real Plains numbers.
  • Custom Blocks tab notes that probability is a weight in the same pool, and documents the custom-blocks: sibling list.
  • A pointer to the new page at the top of "Phase Config Files".

Companion change in AOneBlock itself rewrites the comments in the shipped 0_plains.yml, which is where admins look first.

mkdocs build passes; all new internal links and anchors resolve.

…guide
Admins had no way to find out what the numbers after a Material or
EntityType in a phase file mean. They are relative weights in a single
raffle - not counts and not percentages - and blocks, mobs and
custom-blocks all draw from that same pool. None of that was written
down anywhere.
Adds a dedicated "Customizing Phases" page covering the three distinct
kinds of number in a phase file, the weighted pool with worked examples
and tuning recipes, chest rarity, fixedBlocks/holograms positions,
phases_index.yml order and length, commands, requirements, custom
blocks, version gating, building a phase from scratch, and a
troubleshooting table keyed off the actual log messages.
Also corrects the AOneBlock overview page, which described weights only
as "relative probability" and did not mention that mob weights count
towards the same total as block weights.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017zwLryefnJ6wG76JmYNamx
@tastybento
tastybento merged commit 8fea1b4 into masterAug 2, 2026
1 check passed
@tastybento
tastybento deleted the docs/aoneblock-phase-customization branch August 2, 2026 16:55
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@tastybento
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

docs(AOneBlock): explain phase weights and add a phase customization guide - #85

Merged
tastybento merged 1 commit into
masterfrom
docs/aoneblock-phase-customization
Aug 2, 2026
Merged

docs(AOneBlock): explain phase weights and add a phase customization guide#85
tastybento merged 1 commit into
masterfrom
docs/aoneblock-phase-customization

Conversation

@tastybento

Copy link
Copy Markdown
Member

Why

An admin asked:

in the phases config, what do the numbers represent... as in the numbers after the Material or Entity... I know it is not the number that spawn over the phase, is it a weighting?

They were right, and there was nowhere in the docs that said so. The overview page called them "relative probability" in one tabbed panel, and never mentioned that blocks:, mobs: and custom-blocks: all draw from a single shared pool — so a mob weight is directly comparable to a block weight and pushes every block's percentage down.

What

New page — gamemodes/AOneBlock/Phases.md, "Customizing Phases", added to the nav under AOneBlock. It covers:

  • The three kinds of number in a phase file and how to tell them apart: weights (blocks/mobs/custom-blocks), positions (fixedBlocks/holograms keys), and the section name (the top-level '0': key).
  • Weights in depth — the weight ÷ phase total formula, a worked example using the exact Winter phase the admin quoted, a table of the real shipped Plains percentages showing blocks and mobs interleaved in one pool, why only the ratio matters, and tuning recipes.
  • CHEST as a special case: its weight is the chance of a chest, and rarity is a second roll at the hard-coded 62/25/9/4.
  • fixedBlocks and holograms positions, CHEST_WITH_<ITEM>, and the support-block caveat.
  • phases_index.yml order/length, and that file-name numbers are only a hint now.
  • Commands, placeholders and requirements.
  • Chests, with the "build them in game with setchest" advice.
  • Custom blocks — including that probability: is a weight in the same pool — and the quoting and spawner-timing gotchas.
  • Version gating at phase, block and mob level.
  • A step-by-step "build a new phase" walkthrough.
  • A troubleshooting table keyed off the actual log messages the addon emits.

Overview page fixes (gamemodes/AOneBlock/index.md):

  • blocks tab now says "weight", explains the raffle, and notes CHEST's two-stage roll.
  • mobs tab gains a warning that mob weights share the block total, with the real Plains numbers.
  • Custom Blocks tab notes that probability is a weight in the same pool, and documents the custom-blocks: sibling list.
  • A pointer to the new page at the top of "Phase Config Files".

Companion change in AOneBlock itself rewrites the comments in the shipped 0_plains.yml, which is where admins look first.

mkdocs build passes; all new internal links and anchors resolve.

…guide
Admins had no way to find out what the numbers after a Material or
EntityType in a phase file mean. They are relative weights in a single
raffle - not counts and not percentages - and blocks, mobs and
custom-blocks all draw from that same pool. None of that was written
down anywhere.
Adds a dedicated "Customizing Phases" page covering the three distinct
kinds of number in a phase file, the weighted pool with worked examples
and tuning recipes, chest rarity, fixedBlocks/holograms positions,
phases_index.yml order and length, commands, requirements, custom
blocks, version gating, building a phase from scratch, and a
troubleshooting table keyed off the actual log messages.
Also corrects the AOneBlock overview page, which described weights only
as "relative probability" and did not mention that mob weights count
towards the same total as block weights.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017zwLryefnJ6wG76JmYNamx
@tastybento
tastybento merged commit 8fea1b4 into masterAug 2, 2026
1 check passed
@tastybento
tastybento deleted the docs/aoneblock-phase-customization branch August 2, 2026 16:55
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@tastybento
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

docs(AOneBlock): explain phase weights and add a phase customization guide - #85

Merged
tastybento merged 1 commit into
masterfrom
docs/aoneblock-phase-customization
Aug 2, 2026
Merged

docs(AOneBlock): explain phase weights and add a phase customization guide#85
tastybento merged 1 commit into
masterfrom
docs/aoneblock-phase-customization

Conversation

@tastybento

Copy link
Copy Markdown
Member

Why

An admin asked:

in the phases config, what do the numbers represent... as in the numbers after the Material or Entity... I know it is not the number that spawn over the phase, is it a weighting?

They were right, and there was nowhere in the docs that said so. The overview page called them "relative probability" in one tabbed panel, and never mentioned that blocks:, mobs: and custom-blocks: all draw from a single shared pool — so a mob weight is directly comparable to a block weight and pushes every block's percentage down.

What

New page — gamemodes/AOneBlock/Phases.md, "Customizing Phases", added to the nav under AOneBlock. It covers:

  • The three kinds of number in a phase file and how to tell them apart: weights (blocks/mobs/custom-blocks), positions (fixedBlocks/holograms keys), and the section name (the top-level '0': key).
  • Weights in depth — the weight ÷ phase total formula, a worked example using the exact Winter phase the admin quoted, a table of the real shipped Plains percentages showing blocks and mobs interleaved in one pool, why only the ratio matters, and tuning recipes.
  • CHEST as a special case: its weight is the chance of a chest, and rarity is a second roll at the hard-coded 62/25/9/4.
  • fixedBlocks and holograms positions, CHEST_WITH_<ITEM>, and the support-block caveat.
  • phases_index.yml order/length, and that file-name numbers are only a hint now.
  • Commands, placeholders and requirements.
  • Chests, with the "build them in game with setchest" advice.
  • Custom blocks — including that probability: is a weight in the same pool — and the quoting and spawner-timing gotchas.
  • Version gating at phase, block and mob level.
  • A step-by-step "build a new phase" walkthrough.
  • A troubleshooting table keyed off the actual log messages the addon emits.

Overview page fixes (gamemodes/AOneBlock/index.md):

  • blocks tab now says "weight", explains the raffle, and notes CHEST's two-stage roll.
  • mobs tab gains a warning that mob weights share the block total, with the real Plains numbers.
  • Custom Blocks tab notes that probability is a weight in the same pool, and documents the custom-blocks: sibling list.
  • A pointer to the new page at the top of "Phase Config Files".

Companion change in AOneBlock itself rewrites the comments in the shipped 0_plains.yml, which is where admins look first.

mkdocs build passes; all new internal links and anchors resolve.

…guide
Admins had no way to find out what the numbers after a Material or
EntityType in a phase file mean. They are relative weights in a single
raffle - not counts and not percentages - and blocks, mobs and
custom-blocks all draw from that same pool. None of that was written
down anywhere.
Adds a dedicated "Customizing Phases" page covering the three distinct
kinds of number in a phase file, the weighted pool with worked examples
and tuning recipes, chest rarity, fixedBlocks/holograms positions,
phases_index.yml order and length, commands, requirements, custom
blocks, version gating, building a phase from scratch, and a
troubleshooting table keyed off the actual log messages.
Also corrects the AOneBlock overview page, which described weights only
as "relative probability" and did not mention that mob weights count
towards the same total as block weights.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017zwLryefnJ6wG76JmYNamx
@tastybento
tastybento merged commit 8fea1b4 into masterAug 2, 2026
1 check passed
@tastybento
tastybento deleted the docs/aoneblock-phase-customization branch August 2, 2026 16:55
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@tastybento
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

docs(AOneBlock): explain phase weights and add a phase customization guide - #85

Merged
tastybento merged 1 commit into
masterfrom
docs/aoneblock-phase-customization
Aug 2, 2026
Merged

docs(AOneBlock): explain phase weights and add a phase customization guide#85
tastybento merged 1 commit into
masterfrom
docs/aoneblock-phase-customization

Conversation

@tastybento

Copy link
Copy Markdown
Member

Why

An admin asked:

in the phases config, what do the numbers represent... as in the numbers after the Material or Entity... I know it is not the number that spawn over the phase, is it a weighting?

They were right, and there was nowhere in the docs that said so. The overview page called them "relative probability" in one tabbed panel, and never mentioned that blocks:, mobs: and custom-blocks: all draw from a single shared pool — so a mob weight is directly comparable to a block weight and pushes every block's percentage down.

What

New page — gamemodes/AOneBlock/Phases.md, "Customizing Phases", added to the nav under AOneBlock. It covers:

  • The three kinds of number in a phase file and how to tell them apart: weights (blocks/mobs/custom-blocks), positions (fixedBlocks/holograms keys), and the section name (the top-level '0': key).
  • Weights in depth — the weight ÷ phase total formula, a worked example using the exact Winter phase the admin quoted, a table of the real shipped Plains percentages showing blocks and mobs interleaved in one pool, why only the ratio matters, and tuning recipes.
  • CHEST as a special case: its weight is the chance of a chest, and rarity is a second roll at the hard-coded 62/25/9/4.
  • fixedBlocks and holograms positions, CHEST_WITH_<ITEM>, and the support-block caveat.
  • phases_index.yml order/length, and that file-name numbers are only a hint now.
  • Commands, placeholders and requirements.
  • Chests, with the "build them in game with setchest" advice.
  • Custom blocks — including that probability: is a weight in the same pool — and the quoting and spawner-timing gotchas.
  • Version gating at phase, block and mob level.
  • A step-by-step "build a new phase" walkthrough.
  • A troubleshooting table keyed off the actual log messages the addon emits.

Overview page fixes (gamemodes/AOneBlock/index.md):

  • blocks tab now says "weight", explains the raffle, and notes CHEST's two-stage roll.
  • mobs tab gains a warning that mob weights share the block total, with the real Plains numbers.
  • Custom Blocks tab notes that probability is a weight in the same pool, and documents the custom-blocks: sibling list.
  • A pointer to the new page at the top of "Phase Config Files".

Companion change in AOneBlock itself rewrites the comments in the shipped 0_plains.yml, which is where admins look first.

mkdocs build passes; all new internal links and anchors resolve.

…guide
Admins had no way to find out what the numbers after a Material or
EntityType in a phase file mean. They are relative weights in a single
raffle - not counts and not percentages - and blocks, mobs and
custom-blocks all draw from that same pool. None of that was written
down anywhere.
Adds a dedicated "Customizing Phases" page covering the three distinct
kinds of number in a phase file, the weighted pool with worked examples
and tuning recipes, chest rarity, fixedBlocks/holograms positions,
phases_index.yml order and length, commands, requirements, custom
blocks, version gating, building a phase from scratch, and a
troubleshooting table keyed off the actual log messages.
Also corrects the AOneBlock overview page, which described weights only
as "relative probability" and did not mention that mob weights count
towards the same total as block weights.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017zwLryefnJ6wG76JmYNamx
@tastybento
tastybento merged commit 8fea1b4 into masterAug 2, 2026
1 check passed
@tastybento
tastybento deleted the docs/aoneblock-phase-customization branch August 2, 2026 16:55
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@tastybento
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

docs(AOneBlock): explain phase weights and add a phase customization guide - #85

Merged
tastybento merged 1 commit into
masterfrom
docs/aoneblock-phase-customization
Aug 2, 2026
Merged

docs(AOneBlock): explain phase weights and add a phase customization guide#85
tastybento merged 1 commit into
masterfrom
docs/aoneblock-phase-customization

Conversation

@tastybento

Copy link
Copy Markdown
Member

Why

An admin asked:

in the phases config, what do the numbers represent... as in the numbers after the Material or Entity... I know it is not the number that spawn over the phase, is it a weighting?

They were right, and there was nowhere in the docs that said so. The overview page called them "relative probability" in one tabbed panel, and never mentioned that blocks:, mobs: and custom-blocks: all draw from a single shared pool — so a mob weight is directly comparable to a block weight and pushes every block's percentage down.

What

New page — gamemodes/AOneBlock/Phases.md, "Customizing Phases", added to the nav under AOneBlock. It covers:

  • The three kinds of number in a phase file and how to tell them apart: weights (blocks/mobs/custom-blocks), positions (fixedBlocks/holograms keys), and the section name (the top-level '0': key).
  • Weights in depth — the weight ÷ phase total formula, a worked example using the exact Winter phase the admin quoted, a table of the real shipped Plains percentages showing blocks and mobs interleaved in one pool, why only the ratio matters, and tuning recipes.
  • CHEST as a special case: its weight is the chance of a chest, and rarity is a second roll at the hard-coded 62/25/9/4.
  • fixedBlocks and holograms positions, CHEST_WITH_<ITEM>, and the support-block caveat.
  • phases_index.yml order/length, and that file-name numbers are only a hint now.
  • Commands, placeholders and requirements.
  • Chests, with the "build them in game with setchest" advice.
  • Custom blocks — including that probability: is a weight in the same pool — and the quoting and spawner-timing gotchas.
  • Version gating at phase, block and mob level.
  • A step-by-step "build a new phase" walkthrough.
  • A troubleshooting table keyed off the actual log messages the addon emits.

Overview page fixes (gamemodes/AOneBlock/index.md):

  • blocks tab now says "weight", explains the raffle, and notes CHEST's two-stage roll.
  • mobs tab gains a warning that mob weights share the block total, with the real Plains numbers.
  • Custom Blocks tab notes that probability is a weight in the same pool, and documents the custom-blocks: sibling list.
  • A pointer to the new page at the top of "Phase Config Files".

Companion change in AOneBlock itself rewrites the comments in the shipped 0_plains.yml, which is where admins look first.

mkdocs build passes; all new internal links and anchors resolve.

…guide
Admins had no way to find out what the numbers after a Material or
EntityType in a phase file mean. They are relative weights in a single
raffle - not counts and not percentages - and blocks, mobs and
custom-blocks all draw from that same pool. None of that was written
down anywhere.
Adds a dedicated "Customizing Phases" page covering the three distinct
kinds of number in a phase file, the weighted pool with worked examples
and tuning recipes, chest rarity, fixedBlocks/holograms positions,
phases_index.yml order and length, commands, requirements, custom
blocks, version gating, building a phase from scratch, and a
troubleshooting table keyed off the actual log messages.
Also corrects the AOneBlock overview page, which described weights only
as "relative probability" and did not mention that mob weights count
towards the same total as block weights.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017zwLryefnJ6wG76JmYNamx
@tastybento
tastybento merged commit 8fea1b4 into masterAug 2, 2026
1 check passed
@tastybento
tastybento deleted the docs/aoneblock-phase-customization branch August 2, 2026 16:55
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@tastybento
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

docs(AOneBlock): explain phase weights and add a phase customization guide - #85

Merged
tastybento merged 1 commit into
masterfrom
docs/aoneblock-phase-customization
Aug 2, 2026
Merged

docs(AOneBlock): explain phase weights and add a phase customization guide#85
tastybento merged 1 commit into
masterfrom
docs/aoneblock-phase-customization

Conversation

@tastybento

Copy link
Copy Markdown
Member

Why

An admin asked:

in the phases config, what do the numbers represent... as in the numbers after the Material or Entity... I know it is not the number that spawn over the phase, is it a weighting?

They were right, and there was nowhere in the docs that said so. The overview page called them "relative probability" in one tabbed panel, and never mentioned that blocks:, mobs: and custom-blocks: all draw from a single shared pool — so a mob weight is directly comparable to a block weight and pushes every block's percentage down.

What

New page — gamemodes/AOneBlock/Phases.md, "Customizing Phases", added to the nav under AOneBlock. It covers:

  • The three kinds of number in a phase file and how to tell them apart: weights (blocks/mobs/custom-blocks), positions (fixedBlocks/holograms keys), and the section name (the top-level '0': key).
  • Weights in depth — the weight ÷ phase total formula, a worked example using the exact Winter phase the admin quoted, a table of the real shipped Plains percentages showing blocks and mobs interleaved in one pool, why only the ratio matters, and tuning recipes.
  • CHEST as a special case: its weight is the chance of a chest, and rarity is a second roll at the hard-coded 62/25/9/4.
  • fixedBlocks and holograms positions, CHEST_WITH_<ITEM>, and the support-block caveat.
  • phases_index.yml order/length, and that file-name numbers are only a hint now.
  • Commands, placeholders and requirements.
  • Chests, with the "build them in game with setchest" advice.
  • Custom blocks — including that probability: is a weight in the same pool — and the quoting and spawner-timing gotchas.
  • Version gating at phase, block and mob level.
  • A step-by-step "build a new phase" walkthrough.
  • A troubleshooting table keyed off the actual log messages the addon emits.

Overview page fixes (gamemodes/AOneBlock/index.md):

  • blocks tab now says "weight", explains the raffle, and notes CHEST's two-stage roll.
  • mobs tab gains a warning that mob weights share the block total, with the real Plains numbers.
  • Custom Blocks tab notes that probability is a weight in the same pool, and documents the custom-blocks: sibling list.
  • A pointer to the new page at the top of "Phase Config Files".

Companion change in AOneBlock itself rewrites the comments in the shipped 0_plains.yml, which is where admins look first.

mkdocs build passes; all new internal links and anchors resolve.

…guide
Admins had no way to find out what the numbers after a Material or
EntityType in a phase file mean. They are relative weights in a single
raffle - not counts and not percentages - and blocks, mobs and
custom-blocks all draw from that same pool. None of that was written
down anywhere.
Adds a dedicated "Customizing Phases" page covering the three distinct
kinds of number in a phase file, the weighted pool with worked examples
and tuning recipes, chest rarity, fixedBlocks/holograms positions,
phases_index.yml order and length, commands, requirements, custom
blocks, version gating, building a phase from scratch, and a
troubleshooting table keyed off the actual log messages.
Also corrects the AOneBlock overview page, which described weights only
as "relative probability" and did not mention that mob weights count
towards the same total as block weights.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017zwLryefnJ6wG76JmYNamx
@tastybento
tastybento merged commit 8fea1b4 into masterAug 2, 2026
1 check passed
@tastybento
tastybento deleted the docs/aoneblock-phase-customization branch August 2, 2026 16:55
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@tastybento
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

docs(AOneBlock): explain phase weights and add a phase customization guide - #85

Merged
tastybento merged 1 commit into
masterfrom
docs/aoneblock-phase-customization
Aug 2, 2026
Merged

docs(AOneBlock): explain phase weights and add a phase customization guide#85
tastybento merged 1 commit into
masterfrom
docs/aoneblock-phase-customization

Conversation

@tastybento

Copy link
Copy Markdown
Member

Why

An admin asked:

in the phases config, what do the numbers represent... as in the numbers after the Material or Entity... I know it is not the number that spawn over the phase, is it a weighting?

They were right, and there was nowhere in the docs that said so. The overview page called them "relative probability" in one tabbed panel, and never mentioned that blocks:, mobs: and custom-blocks: all draw from a single shared pool — so a mob weight is directly comparable to a block weight and pushes every block's percentage down.

What

New page — gamemodes/AOneBlock/Phases.md, "Customizing Phases", added to the nav under AOneBlock. It covers:

  • The three kinds of number in a phase file and how to tell them apart: weights (blocks/mobs/custom-blocks), positions (fixedBlocks/holograms keys), and the section name (the top-level '0': key).
  • Weights in depth — the weight ÷ phase total formula, a worked example using the exact Winter phase the admin quoted, a table of the real shipped Plains percentages showing blocks and mobs interleaved in one pool, why only the ratio matters, and tuning recipes.
  • CHEST as a special case: its weight is the chance of a chest, and rarity is a second roll at the hard-coded 62/25/9/4.
  • fixedBlocks and holograms positions, CHEST_WITH_<ITEM>, and the support-block caveat.
  • phases_index.yml order/length, and that file-name numbers are only a hint now.
  • Commands, placeholders and requirements.
  • Chests, with the "build them in game with setchest" advice.
  • Custom blocks — including that probability: is a weight in the same pool — and the quoting and spawner-timing gotchas.
  • Version gating at phase, block and mob level.
  • A step-by-step "build a new phase" walkthrough.
  • A troubleshooting table keyed off the actual log messages the addon emits.

Overview page fixes (gamemodes/AOneBlock/index.md):

  • blocks tab now says "weight", explains the raffle, and notes CHEST's two-stage roll.
  • mobs tab gains a warning that mob weights share the block total, with the real Plains numbers.
  • Custom Blocks tab notes that probability is a weight in the same pool, and documents the custom-blocks: sibling list.
  • A pointer to the new page at the top of "Phase Config Files".

Companion change in AOneBlock itself rewrites the comments in the shipped 0_plains.yml, which is where admins look first.

mkdocs build passes; all new internal links and anchors resolve.

…guide
Admins had no way to find out what the numbers after a Material or
EntityType in a phase file mean. They are relative weights in a single
raffle - not counts and not percentages - and blocks, mobs and
custom-blocks all draw from that same pool. None of that was written
down anywhere.
Adds a dedicated "Customizing Phases" page covering the three distinct
kinds of number in a phase file, the weighted pool with worked examples
and tuning recipes, chest rarity, fixedBlocks/holograms positions,
phases_index.yml order and length, commands, requirements, custom
blocks, version gating, building a phase from scratch, and a
troubleshooting table keyed off the actual log messages.
Also corrects the AOneBlock overview page, which described weights only
as "relative probability" and did not mention that mob weights count
towards the same total as block weights.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017zwLryefnJ6wG76JmYNamx
@tastybento
tastybento merged commit 8fea1b4 into masterAug 2, 2026
1 check passed
@tastybento
tastybento deleted the docs/aoneblock-phase-customization branch August 2, 2026 16:55
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@tastybento