CrayCon Creepers Final Delivery

CCCF (CrayCon Creepers Central Farmers) is an end-to-end automated Minecraft resource marketplace. Customers order via Power Pages portal, sign contracts via OneFlow, get SMS confirmation via Link Mobility, and AI bots fulfill orders automatically. All data flows through Dataverse.

Redstone Realm

Full Power Pages portal at https://cccpfactoryportal.powerappsportals.com/ with customer storefront, order management, and admin dashboards. 13 web pages, 18 templates. Dataverse tables for orders, orderlines, resources, harvesters, and harvest summaries. Web API enabled for orders. Azure AD, LinkedIn, Twitter, Facebook authentication. Complete business flow from browse to purchase to contract to fulfillment to tracking.

Governance and Best Practices

Governance wasn’t an afterthought in CrayCon Creepers Central Farming. It’s how we kept the whole “always harvesting, always ordering” idea from turning into a fragile demo. We built with a clear environment strategy (Dev → Test → Prod), so experiments stay contained, validation happens before anything reaches real users, and production remains stable. On top of that, we treated the portal like an actual production surface: anonymous visitors only see public-friendly content, while operational views (admin dashboards, harvester assignments, facility metrics) are protected with authentication and granular table permissions aligned to real roles and responsibilities. (https://acdc.blog/crayon26/security-and-governance-building-systems-that-wont-collapse-under-pressu…)

On the security and data side, we focused on preventing accidental “oops”-moments rather than relying on perfect maker behavior. DLP policies are used to control connector usage and stop risky data flows by default, so operational data doesn’t quietly leak into services that don’t belong in the same trust boundary. That also supports compliance and privacy principles: least privilege, separation of environments, and clear control points for where data can move. The result is a portal and platform setup that’s designed to be resilient under pressure, not just functional when everything goes right. (https://acdc.blog/crayon26/security-and-governance-building-systems-that-wont-collapse-under-pressu…)

We also leaned heavily into traceability and accountability. Every meaningful change is designed to be captured through source control and reviewed before promotion, giving us a clean audit trail of what changed, why, and who approved it. Our ALM flow uses GitHub Actions + PR review as a governance gate, with deployment status and context pushed back into Teams/Dataverse so the team gets real-time visibility (and the ability to stop unsafe changes early). We even use AI in a “governed” way, not to make decisions for users, but to improve transparency by generating documentation/changelogs alongside the code so the system stays explainable and maintainable as it grows. (https://acdc.blog/crayon26/craycon-creepers-automating-solutions-alm-with-github-actions-and-ai/112…)

In our CCCP Factory Portal, we also treated Power Pages security as defense in depth. Public visitors can view basic, non-sensitive resource information, but anything operational like the admin dashboard, harvester assignments, production metrics, and alerts is locked behind authentication and controlled with security roles and granular table permissions. That way we can give the right people exactly the access they need (for example read-only for supervisors, scoped access per team) without handing out broad admin rights, and we avoid exposing data that directly affects real operational decisions. (https://acdc.blog/crayon26/security-and-governance-building-systems-that-wont-collapse-under-pressu…)

Finally: we did install the Power Platform CoE Starter Kit to reinforce governance visibility. It took some wrestling (developer/default environment realities are… spicy), but we were able to get some data out of it, giving us the beginnings of the monitoring baseline we want for long-term operations and responsible scaling. That’s the theme across the whole solution: fun concept, serious foundations, secure defaults, clear ownership, and trustworthy building blocks.

Login throttling (5 attempts per 5 min, 15 min lockout). X-Frame-Options SAMEORIGIN. SameSite cookie policy. Role-based table permissions separate customer, admin, and anonymous access. API keys in environment variables, not code. All orders tracked in Dataverse with timestamps. Bot harvest events logged with bot ID, resource type, quantity. INSECURE_CODING disabled by default.

Data, AI and Analytics

Dataverse as data backbone: ccc_orders, ccc_orderlines, ccc_resources, ccc_harvesters, ccc_harvester_summary tables. Bots POST harvest telemetry every 10 items to Power Automate webhook, which writes to Dataverse. Portal dashboards query live data. 17 LLM providers integrated: OpenAI, Claude, Gemini, Groq, Mistral, DeepSeek, Replicate, HuggingFace, Cerebras, vLLM, Grok, Mercury, Azure OpenAI, OpenRouter, Qwen, LLaMA. Switch providers via JSON config.

Low-Code

Power Pages portal built entirely in maker tools. Liquid templates, content snippets, site settings. Power Automate flows handle OneFlow contract generation, Link Mobility SMS, Dataverse operations. No custom .NET code. 80% business logic in Power Platform. Pro code only for Minecraft protocol and AI orchestration.

Code Connoisseur

remote_control_bot.js: WebSocket bot control with Prismarine Viewer integration. 9 job types: farmer-wheat, farmer-potatoes, farmer-beets, farmer-carrots, sparse-farmer, brigadier, guard, scout, wanderer. Mindcraft AI framework with 17 LLM providers, profile-based config, 100+ skill actions. React/TypeScript website with live ACDC badge dashboard. Cloudflare Workers deployment. TUI CLI to control bots

Digital Transformation

Customer self-service 24/7.
Instant order creation triggers automated contract and SMS. AI bots harvest continuously. Real-time production data in portal. Full audit trail. No manual data entry, no phone calls for status, no paper contracts.

Team: CrayCon Creepers
Members: @damsleth, @siifux, @jenunn
Web: https://creepers.craycon.no
Code: https://github.com/Puzzlepart/ACDC-26
License: WTFPL

We made an oopsie…

So we (Kim) already had a domain for “craycon.no” from before. We thought it would be a good idea to connect that domain to the developer tenant we setup for this ACDC hackathon.

However, what we didn’t know is that if you mess with the admin account upn/domain, that might have consequences for the developer environment – especially Azure and subscriptions.

When we tried setting up a subscription in Azure in order to setup a few things, like Azure Keyvault, logic apps, Azure runbooks etc – THERE WERE NO ELIGABLE SUBSCRIPTIONS.

We tried changing the domain of the developer tenant admin back to what it originally was but with no luck….

Will never do that mistake again #Dooh

From Contract Signature to Automated SMS Confirmation with Link Mobility

After a customer has signed a contract through Oneflow, the order in CRM is automatically updated to “Contract Signed”, and the order is automatically deactivated.

Upon this order change, a cloud flow is triggered to send out an confirmation SMS to the “Order Contact” through Link Mobility’s API services.

It was super simple to setup after we found the Link Mobility connector in Power Automate hehe!

A new SMS activity record is also created and associated with the order record in CRM to make sure we track all necessary activities towards the order contact.

Link to Linkedln Post: https://www.linkedin.com/posts/oisteinu_thank-you-to-link-mobility-for-sponsoring-activity-7420802820574027778-9UZ5?utm_source=share&utm_medium=member_desktop&rcm=ACoAACZp9EsB5WuCv7qLkSxijxlW3P5zed2ayg4

Plug N’ Play Badge: Farm Operations Portal Teams App

The Problem

Our CCCP Factory runs on automated AI harvesters working 24/7 in Minecraft. These digital comrades needed real-time visibility into what they should be working on, but they had zero access to operational data. They’d constantly ping managers asking “What should I work on?” or “Is this order urgent?”

The factory management dashboard works great for managers, but harvesters needed their own workspace.

The Solution: Farm Operations Portal

I built a Microsoft Teams app called “Farm Operations Portal” that lives directly inside our Harvester Team channel. It’s basically an operational console for the workforce.

The app shows:

  • Real-time stock levels for wheat, potatoes, and carrots
  • Active order queue with customer info
  • Detailed order breakdowns
  • Incident reporting (the game changer!)

That last one is huge. Harvesters can now report equipment failures, production bottlenecks, and resource shortages directly into a Dataverse table. Before this, incidents just got lost in chat messages or never reported at all.

Why Teams?

The harvesters are already hanging out in Teams all day. By embedding the portal as a native Teams app, they don’t need to switch platforms. Everything’s in one place: chat, operational data, meetings, and files.

The Results

Before: Constant manager interruptions, lost incidents, confusion about priorities.

After: Harvesters are self-sufficient. Manager interruptions dropped by about 70%. Incidents get logged and tracked. Everyone sees the same data, so coordination improved massively.

The incident reporting alone makes this worth it. We now have a proper feedback loop from the workforce to management that didn’t exist before.

Latest integration is our incident reporting where the harvesters will be able to report incidents directly if something happens in the fields

DOS Vatnik Control Center 2.11

Running Command Center in Gosplan state is difficult. 
We have potato farm, not semi conductor factory.
Newest terminal available from government supply center is DOS 1.25 terminal, although Yevgeni managed to upgrade to 2.11 and install SSH on it, so we can run central command center remotely.
We request retro badge for consolation, neighbor team laughs at our computer system, even though it processes datas at blazing 75 megahertz speeds.

Oneflow Integration: Automated Contract Signing for Factory Orders

The Integration

Every time someone places an order in the CCCP Factory Portal, a Power Automate flow triggers automatically and sends a contract to the customer via Oneflow’s API. No manual work. No email chains. Just automated contract generation and signing.

How It Works

Step 1: User places order on the Resources page (wheat, potatoes, carrots, etc.)
Step 2: Order gets created in Dataverse
Step 3: Power Automate detects the new order (trigger: “When a row is added”)
Step 4: Flow calls Oneflow API to generate contract with order details
Step 5: Contract sent to customer’s email via Oneflow
Step 6: Customer signs on any device (desktop, mobile, tablet)
Step 7: Signed contract triggers next steps in the flow (payment processing, fulfillment)

Why Oneflow?

We needed seamless document collaboration and signing. Oneflow’s API made it simple to integrate with our Dataverse/Power Automate setup. The contracts are dynamic, they include order details, customer info, line items, and totals pulled directly from our data.

The Result

Orders in our portal now have a complete contract lifecycle:

  1. Order placed → Contract generated
  2. Contract sent → Customer notified
  3. Contract signed → Order validated
  4. Validated order → Payment & fulfillment will later triggered (yet to come)

All automated. All integrated. All working seamlessly with Oneflow’s modern signing solution.

Feature Bombing: The CCCP Factory Dashboard

“Why have one feature when you can have twenty?”

The Claim

I’m claiming the Feature Bombing badge for cramming 20 features into a single dashboard screen while keeping it functional and coherent.

What’s Packed In

Main Dashboard:

  • 3 real-time resource quota cards with live percentages and output rates
  • Recent Orders panel (API-loaded top 3)
  • Field Status panel with progress tracking
  • Harvesters overview
  • Production Summary table
  • Priority Alerts panel

The Modals (Because One Screen Wasn’t Enough):

  • Show All Orders Modal – Complete order history with searchable cards
  • Order Details Modal – Full breakdown with line items and totals
  • All Harvesters Modal – Stats summary + individual harvester management
  • Harvester Activity Logs – Per-harvester API-loaded recent activity
  • Status Toggle System – Activate/deactivate harvesters with custom confirmations
Example of modal that opens to show all harvesters. Here the admin user can also set harvesters on a break by setting them to idle.
Other modals with more features
Other modals with more features

The Infrastructure:

  • Custom confirmation dialogs (no browser alerts)
  • Custom notification system
  • Real-time updates via API
  • Smart modal stacking management
  • Loading/empty/error states everywhere
  • Mobile responsive throughout

Why It Works

Everything is themed around factory automation and resource management. The Soviet propaganda aesthetic (red gradients, gold accents, uppercase typography) ties it together visually.

The whole thing runs on centralized API utilities in utils.js, making the code clean despite the feature count. Modals lazy-load data only when opened. The order list auto-refreshes when you place new orders elsewhere in the portal.

Automating Solutions ALM with Github Actions and AI

Our developers should focus their time as little as possible on repeating tasks like, deployment, release notes, updating technical documentation, who did what at what time, and the list goes on. It’s a really important job but it keeps eating our valuable time…

Our solution to this is a solution designed to streamline Dataverse solution management while enforcing ALM best practices. It combines Dataverse Pipelines, GitHub Actions, AI-powered documentation & Teams notifications to deliver fully automated, auditable, and governed deployments.

Deployment Stage record in Power Platform Pipelines

Automated Solution Management

  • Power Platform Pipelines – Developer triggers the deployment for the respective solution.
  • Cloud flows – Triggered on pre-deployment step & integrates with Github & Microsoft Teams.
  • GitHub Actions export, unpack, commit & create pull requests for the solution.
  • PR outcome triggers a cloud flow in order to notify users and continue/stop the deployment.
Triggered on pre-deployment step
#StairwayToHeaven

Governance & Deployment Control

  • Github PR review acts as a pre-deployment approval step, giving teams control over which solutions that can reach the target environments.
  • Deployment outcomes are sent back to Dataverse and Teams, providing real-time feedback.
  • Branch strategy (dev for development, main for production) keeps production stable and auditable.
Triggered from Github Action (pr-feedback-to-dataverse.yml)
Deployment Stage Run is updated with link to Github PR for more details

AI-Powered Documentation

  • GitHub Copilot analyzes every PR and generates technical documentation automatically.
  • Changelogs, impact analysis, and test recommendations are included, making knowledge transparent and up-to-date.
  • Documentation is versioned and stored alongside solutions for easy reference.


Benefits

  • Faster Deployments: Automation reduces manual steps and errors.
  • Full Governance: PR workflow enforces approvals and branch protection.
  • Better Transparency: Teams see real-time deployment status and AI-generated documentation.
  • Audit-Ready: Every change, approval, and deployment is logged and version-controlled.

Sharing is Caring: The Comrade’s Guide to Open Source

TL;DR: We open-sourced our entire codebase under WTFPL.
We published the acdc-badge-sniper skill that tells competitors how to beat us.
We built a better scoreboard than the official one and gave it to every team.
We helped a neighbor-team with bedrock-base issues.
If that’s not sharing, nothing is.

At CrayCon Creepers, we believe in the collective good. We’ve built on the shoulders of giants, and now we’re extending a hand to those who need it.

Open Source Under WTFPL

Our entire codebase lives at https://github.com/Puzzlepart/ACDC-26 under the WTFPL (Do What The Fuck You Want To Public License). No strings attached. No complicated attribution requirements. Just pure, unfiltered open source.

Want our Minecraft bot framework? Take it. Need our React + Vite + Tailwind setup? It’s yours. Fancy the Cloudflare Workers deployment pipeline? Clone away.

LICENSE: https://github.com/Puzzlepart/ACDC-26/blob/main/LICENSE
Because good code deserves to be free.

The ACDC Badge Sniper Skill

We didn’t just open source our application code—we shared the meta-strategy. The acdc-badge-sniper is a Claude Code skill that helps teams identify high-ROI badge targets, rank them by effort vs. reward, and generate time-boxed action plans.

It’s a strategic planning tool that:

– Fetches live badge data from the ACDC API

– Analyzes your current stack and time constraints

– Produces ranked badge recommendations with evidence checklists

– Generates 60-minute action plans for maximum efficiency

Skill source: https://github.com/Puzzlepart/ACDC-26/blob/main/skills/acdc-badge-sniper/SKILL.md — Meta-gaming the competition, together.

We literally shared the playbook on how to win the competition. That’s confidence. That’s solidarity.

The Advanced Scoreboard

While the official stage scoreboard shows basic rankings, we built something better—and made it public for all teams to use: https://creepers.craycon.no/badges

Our scoreboard lets teams:

– Filter badges by status (missing, acquired, rejected)

– View detailed badge requirements and evidence

– Track their own progress without scrolling through leaderboards

– See what’s left to claim with time running out

It’s more functional than the official version. We didn’t have to share it publicly—we could’ve kept it as an internal advantage. But that’s not the comrade way.

Every team in ACDC can use it. Every team benefits. That’s the power of building in public.

Helping the Collective

When neighboring teams hit Minecraft-related roadblocks, we didn’t gate-keep. We showed them how to get out of adventure mode and back to building

The Sharing is Caring badge is ours because we built in public, documented in detail, and helped our comrades when they needed it.

#SharingIsCaring | #CommunityChampions

You can sock-it in realtime with the Creepers (426 upgrade required)

How do you control multiple Minecraft bots in real-time from a web browser? We needed instant feedback.no lag, no polling, no page refreshes.

Our Solution: Dual WebSocket Architecture

We built a real-time control center at mc.craycon.no:4000

and a live 3D viewer at mc.craycon.no:3000, both powered by WebSockets.

Viewer Server (Socket.IO)
const io = socketIo(server, { path: '/socket.io' })
io.on('connection', socket => {
const worldView = new WorldView(bot.world, 6, bot.entity.position, socket)
bot.on('move', () => socket.emit('position', { pos: bot.entity.position, yaw: bot.entity.yaw }))
})

Control Server (Native WebSocket)
const { WebSocketServer } = require('ws')
const wss = new WebSocketServer({ server })


setInterval(() => {
const payload = { bots: Array.from(bots.values()).map(buildTelemetry) }
broadcast({ type: 'telemetry', payload, ts: Date.now() })
}, 500)

What We Built

  • Live telemetry: Health, position, inventory updates stream to all connected clients
  • WASD controls: Keyboard input via WebSocket, bot movement in <50ms
  • Mouse look: Right-click drag translates to bot camera rotation instantly
  • Multi-bot support: Switch between bots, all synced in real-time
  • 3D world viewer: Watch your bot’s perspective update live via prismarine-viewer The Magic When you press W in the browser, it fires a WebSocket message. The server calls bot.setControlState(‘forward’, true). The bot moves. The 3D viewer updates.
    All in real-time, no HTTP requests, no polling. Try it yourself:
    http://mc.craycon.no:4000 (Control Center) | http://mc.craycon.no:3000 (Bot Viewer)
    PS: the secret auth token is YOLO_SWAG