{"id":233,"date":"2026-06-04T04:15:01","date_gmt":"2026-06-04T04:15:01","guid":{"rendered":"https:\/\/gamingwithdaopa.ellatha.com\/evefrontier\/?p=233"},"modified":"2026-06-05T00:29:15","modified_gmt":"2026-06-05T00:29:15","slug":"what-can-i-make-with-this","status":"publish","type":"post","link":"https:\/\/gamingwithdaopa.ellatha.com\/evefrontier\/what-can-i-make-with-this\/","title":{"rendered":"EVE Frontier What Can I Make with this?"},"content":{"rendered":"\r\n<div id=\"evefrontier-inventory-analyzer\" data-json=\"https:\/\/gamingwithdaopa.ellatha.com\/media\/evefrontier\/blueprints.json\">\r\n  <style>\r\n    :root {\r\n      --bg:#0a0c10; --panel:#12141b; --panel-2:#171a22; --ink:#e6edf3; --muted:#9aa4b2;\r\n      --accent:#39d0ff; --accent-2:#00ffa8; --warn:#ffbe55; --red:#ff5555; --grid:#1f2430;\r\n      --chip:#222635; --radius:14px;\r\n    }\r\n    #evefrontier-inventory-analyzer {\r\n      color:var(--ink); font:14px\/1.5 Inter, system-ui, -apple-system, Segoe UI, Roboto, \"Helvetica Neue\", Arial, sans-serif;\r\n      background:radial-gradient(1200px 600px at 70% -20%,rgba(57,208,255,.05),transparent 60%), var(--bg);\r\n      padding:18px; border-radius:var(--radius); box-shadow:0 10px 30px rgba(0,0,0,.35);\r\n    }\r\n    .shell { display:grid; grid-template-columns:380px 1fr; gap:16px; }\r\n    @media (max-width:1100px){ .shell{ grid-template-columns:1fr } }\r\n    .sidebar, .panel {\r\n      background:linear-gradient(180deg,var(--panel),var(--panel-2));\r\n      border:1px solid #202531; border-radius:var(--radius); overflow:hidden;\r\n    }\r\n    .toolbar { padding:12px; border-bottom:1px solid var(--grid); }\r\n    .search, .paste-box, .inv-qty {\r\n      background:#0e1118; border:1px solid #1e2430; color:#fff; border-radius:8px; padding:8px;\r\n    }\r\n    .paste-box { width:100%; height:150px; font-family:monospace; resize:vertical; }\r\n    .btn { display:inline-flex; align-items:center; gap:6px; background:#0e1118; border:1px solid #1e2431;\r\n      color:#d7deea; border-radius:999px; padding:6px 12px; cursor:pointer; font-size:13px; }\r\n    .btn:hover { border-color:#39d0ff; color:#fff; }\r\n    .btn-primary { background:#1a3a2a; border-color:#00ffa8; color:#00ffa8; }\r\n    .inventory-list { padding:8px; max-height:320px; overflow:auto; }\r\n    .inv-item { display:flex; align-items:center; padding:8px; border-bottom:1px solid #1e2431; }\r\n    .inv-item .icon { width:32px; height:32px; margin-right:10px; flex-shrink:0; border-radius:6px; border:1px solid #2a3144; background:#0e1118; overflow:hidden; }\r\n    .search-wrapper { position:relative; }\r\n    #suggestions {\r\n      position:absolute; top:100%; left:0; right:0; z-index:100;\r\n      background:#12141b; border:1px solid #263042; border-radius:10px;\r\n      max-height:280px; overflow:auto; box-shadow:0 10px 30px rgba(0,0,0,.5);\r\n      display:none;\r\n    }\r\n    .suggestion-item {\r\n      display:flex; align-items:center; padding:8px 12px; cursor:pointer;\r\n      border-bottom:1px solid #1e2431;\r\n    }\r\n    .suggestion-item:hover { background:rgba(57,208,255,.08); }\r\n    .suggestion-item:last-child { border-bottom:none; }\r\n    .suggestion-item .icon { width:28px; height:28px; margin-right:10px; flex-shrink:0; border-radius:6px; border:1px solid #2a3144; background:#0e1118; overflow:hidden; }\r\n    .result-summary { background:#0f131b; border:1px solid #1e2431; border-radius:10px; padding:14px; margin-bottom:16px; }\r\n    .craftable { background:#0f131b; border:1px solid #1e2431; border-radius:10px; padding:12px; margin-bottom:8px; }\r\n    .craftable .icon { width:28px; height:28px; margin-right:10px; flex-shrink:0; border-radius:6px; border:1px solid #2a3144; background:#0e1118; overflow:hidden; }\r\n    .faint { color:#9aa4b2; }\r\n    .badge { background:#222635; border:1px solid #2a3144; padding:2px 8px; border-radius:999px; font-size:11px; }\r\n\r\n    \/* Initial Welcome State *\/\r\n    .initial-welcome { padding: 8px 4px 4px; }\r\n    .stat-grid {\r\n      display: grid; grid-template-columns: repeat(auto-fit, minmax(132px, 1fr)); gap: 12px; margin: 18px 0 22px;\r\n    }\r\n    .stat-card {\r\n      background: #0f131b; border: 1px solid #1e2431; border-radius: 10px; padding: 16px 14px; text-align: center;\r\n      transition: transform 0.2s ease, border-color 0.2s ease;\r\n    }\r\n    .stat-card:hover { border-color: #39d0ff; transform: translateY(-2px); }\r\n    .stat-card .num { font-size: 26px; font-weight: 700; color: #39d0ff; line-height: 1; margin-bottom: 4px; }\r\n    .stat-card .label { font-size: 12px; color: #9aa4b2; font-weight: 500; }\r\n    .step-list { margin: 18px 0; }\r\n    .step { display: flex; gap: 14px; margin-bottom: 14px; align-items: flex-start; }\r\n    .step:last-child { margin-bottom: 0; }\r\n    .step-num {\r\n      width: 26px; height: 26px; background: #1a3a2a; color: #00ffa8; border-radius: 50%;\r\n      display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 13px; flex-shrink: 0; margin-top: 1px;\r\n    }\r\n    .step-content { flex: 1; font-size: 13.5px; line-height: 1.45; }\r\n    .step-content strong { color: #e6edf3; }\r\n    .demo-btn {\r\n      width: 100%; justify-content: center; padding: 14px 20px !important; font-size: 15px; margin-top: 8px;\r\n      box-shadow: 0 4px 14px rgba(0, 255, 168, 0.15);\r\n    }\r\n    .demo-btn:hover { box-shadow: 0 6px 20px rgba(0, 255, 168, 0.25); transform: translateY(-1px); }\r\n    .initial-footer {\r\n      margin-top: 20px; padding-top: 14px; border-top: 1px solid #202531; font-size: 11px; color: #6b7280; text-align: center;\r\n    }\r\n  <\/style>\r\n\r\n  <p class=\"lede\">Wondering what you can make with all the items in your storage? Use our tool to find all the various blueprints you can craft! Open up your field storage, Press (Ctrl-A \u2192 Ctrl-C) then Parse Data or add items manually. <strong>Share the link with friends<\/strong> to show them exactly what you can build.<\/p>\r\n\r\n  <div class=\"shell\">\r\n    <!-- LEFT: INPUT -->\r\n    <div class=\"sidebar\">\r\n      <div class=\"toolbar\">\r\n        <h3 style=\"margin:0 0 10px;\">Your Inventory<\/h3>\r\n        <div class=\"search-wrapper\">\r\n          <div style=\"display:flex; gap:6px; margin-bottom:8px;\">\r\n            <input id=\"search\" class=\"search\" placeholder=\"Search item name...\" style=\"flex:1\">\r\n            <input id=\"qty\" type=\"number\" value=\"1\" min=\"1\" style=\"width:70px\" class=\"search\">\r\n            <button id=\"addBtn\" class=\"btn btn-primary\">Add<\/button>\r\n          <\/div>\r\n          <div id=\"suggestions\"><\/div>\r\n        <\/div>\r\n        <div style=\"margin-bottom:6px; font-size:12px; color:#9aa4b2;\">Paste from Field Storage(s):<\/div>\r\n        <textarea id=\"pasteBox\" class=\"paste-box\" placeholder=\"Hydrated Sulfide Matrix 990&#10;Platinum-Palladium Matrix 982\"><\/textarea>\r\n        <div style=\"display:flex; gap:8px; margin-top:8px;\">\r\n          <button id=\"parseBtn\" class=\"btn\">Parse Paste<\/button>\r\n          <button id=\"clearBtn\" class=\"btn\">Clear All<\/button>\r\n        <\/div>\r\n      <\/div>\r\n      <div id=\"inventoryList\" class=\"inventory-list\"><\/div>\r\n      <div style=\"padding:12px; border-top:1px solid #202531; display:flex; flex-direction:column; gap:8px;\">\r\n        <button id=\"analyzeBtn\" class=\"btn btn-primary\" style=\"width:100%; justify-content:center; padding:10px 0;\">\r\n          Analyze Inventory\r\n        <\/button>\r\n        <button id=\"shareBtn\" class=\"btn\" style=\"width:100%; justify-content:center; padding:9px 0; font-size:13px; border-color:#3a3f4d;\">\r\n          \ud83d\udd17 Share Inventory Link\r\n        <\/button>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <!-- RIGHT: RESULTS \/ INITIAL STATE -->\r\n    <div class=\"panel\" style=\"padding:16px; min-height: 520px;\">\r\n      <div id=\"results\"><\/div>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <script>\r\n  (function() {\r\n    const JSON_URL = \"https:\/\/gamingwithdaopa.ellatha.com\/media\/evefrontier\/blueprints.json\";\r\n    const ICON_BASE = \"https:\/\/gamingwithdaopa.ellatha.com\/media\/evefrontier\/icons\/\";\r\n    \r\n    let itemMap = new Map();\r\n    let nameToTypeID = new Map();\r\n    let validNames = new Set();\r\n    let materialUsages = new Map();\r\n    let blueprintRecipes = new Map();\r\n    let producedBy = new Map();\r\n    let inventory = new Map();\r\n    let allItemNames = [];\r\n    let itemIcons = new Map();\r\n\r\n    const $ = id => document.getElementById(id);\r\n\r\n    function showToast(msg) {\r\n      const t = document.createElement(\"div\");\r\n      t.textContent = msg;\r\n      t.style.cssText = \"position:fixed;bottom:20px;right:20px;background:#1a3a2a;color:#00ffa8;padding:10px 16px;border-radius:6px;border:1px solid #00ffa8;z-index:9999\";\r\n      document.body.appendChild(t);\r\n      setTimeout(() => t.remove(), 2400);\r\n    }\r\n\r\n    function getItemIconHTML(typeID, size = 'small') {\r\n      const iconSize = size === 'large' ? '42px' : '28px';\r\n\r\n      if (itemIcons.has(typeID)) {\r\n        return `<img decoding=\"async\" class=\"icon\" src=\"${ICON_BASE}${itemIcons.get(typeID)}\" style=\"width:${iconSize}; height:${iconSize}; object-fit:contain;\" loading=\"lazy\">`;\r\n      }\r\n\r\n      const producers = producedBy.get(typeID) || [];\r\n      if (producers.length > 0) {\r\n        let bestBp = null;\r\n        const itemName = (itemMap.get(typeID) || \"\").toLowerCase();\r\n\r\n        for (const prod of producers) {\r\n          const bp = blueprintRecipes.get(prod.recipeKey);\r\n          if (!bp) continue;\r\n          if (bp.name.toLowerCase().includes(itemName) || itemName.includes(bp.name.toLowerCase().replace(\" blueprint\", \"\"))) {\r\n            bestBp = bp; break;\r\n          }\r\n          if (!bestBp) bestBp = bp;\r\n        }\r\n        if (bestBp && bestBp.iconFile) {\r\n          return `<img decoding=\"async\" class=\"icon\" src=\"${ICON_BASE}${bestBp.iconFile}\" style=\"width:${iconSize}; height:${iconSize}; object-fit:contain;\" loading=\"lazy\">`;\r\n        }\r\n      }\r\n      return `<div class=\"icon\" style=\"width:${iconSize}; height:${iconSize};\"><i class=\"fa fa-cube\"><\/i><\/div>`;\r\n    }\r\n\r\n    function findItem(name) {\r\n      const n = name.trim().toLowerCase();\r\n      if (!validNames.has(n)) return null;\r\n      for (const [orig, id] of nameToTypeID) if (orig.toLowerCase() === n) return {typeID: id, name: orig};\r\n      return null;\r\n    }\r\n\r\n    function renderInventory() {\r\n      const list = $(\"inventoryList\");\r\n      list.innerHTML = \"\";\r\n      if (inventory.size === 0) {\r\n        list.innerHTML = `<div style=\"padding:20px;color:#9aa4b2;text-align:center\">No items yet<\/div>`;\r\n        return;\r\n      }\r\n      for (const [typeID, qty] of inventory) {\r\n        const name = itemMap.get(typeID) || typeID;\r\n        const row = document.createElement(\"div\");\r\n        row.className = \"inv-item\";\r\n        row.innerHTML = `\r\n          <div style=\"display:flex; align-items:center; flex:1; min-width:0;\">\r\n            ${getItemIconHTML(typeID)}\r\n            <div>\r\n              <div style=\"font-weight:600;\">${name}<\/div>\r\n              <div class=\"faint mono\" style=\"font-size:11px;\">typeID: ${typeID}<\/div>\r\n            <\/div>\r\n          <\/div>\r\n          <div style=\"display:flex; align-items:center; gap:6px;\">\r\n            <input type=\"number\" value=\"${qty}\" class=\"inv-qty\" data-id=\"${typeID}\">\r\n            <button class=\"btn\" style=\"padding:2px 8px;\" data-remove=\"${typeID}\">\u00d7<\/button>\r\n          <\/div>\r\n        `;\r\n        row.querySelector(\".inv-qty\").onchange = e => {\r\n          inventory.set(typeID, Math.max(1, parseInt(e.target.value) || 1));\r\n        };\r\n        row.querySelector(\"[data-remove]\").onclick = () => {\r\n          inventory.delete(typeID);\r\n          renderInventory();\r\n        };\r\n        list.appendChild(row);\r\n      }\r\n    }\r\n\r\n    function addItem(name, qty = 1) {\r\n      const found = findItem(name);\r\n      if (!found) { showToast(`Unknown item: ${name}`); return false; }\r\n      inventory.set(found.typeID, (inventory.get(found.typeID) || 0) + qty);\r\n      renderInventory();\r\n      return true;\r\n    }\r\n\r\n    function setupAutocomplete() {\r\n      const input = $(\"search\");\r\n      const box = $(\"suggestions\");\r\n      input.addEventListener(\"input\", function() {\r\n        const val = input.value.trim().toLowerCase();\r\n        box.innerHTML = \"\";\r\n        if (!val) { box.style.display = \"none\"; return; }\r\n        const matches = [];\r\n        for (let i = 0; i < allItemNames.length; i++) {\r\n          if (allItemNames[i].toLowerCase().indexOf(val) !== -1) {\r\n            matches.push(allItemNames[i]);\r\n            if (matches.length >= 10) break;\r\n          }\r\n        }\r\n        if (matches.length === 0) { box.style.display = \"none\"; return; }\r\n        for (let i = 0; i < matches.length; i++) {\r\n          const name = matches[i];\r\n          const typeID = nameToTypeID.get(name);\r\n          const item = document.createElement(\"div\");\r\n          item.className = \"suggestion-item\";\r\n          item.innerHTML = `${getItemIconHTML(typeID)}<div class=\"name\">${name}<\/div>`;\r\n          item.onclick = function() {\r\n            input.value = name; box.style.display = \"none\"; $(\"qty\").focus(); $(\"qty\").select();\r\n          };\r\n          box.appendChild(item);\r\n        }\r\n        box.style.display = \"block\";\r\n      });\r\n      document.addEventListener(\"click\", function(e) {\r\n        if (!input.contains(e.target) && !box.contains(e.target)) box.style.display = \"none\";\r\n      });\r\n    }\r\n\r\n    function parsePaste() {\r\n      const text = $(\"pasteBox\").value.trim();\r\n      if (!text) return;\r\n      let added = 0, rejected = 0;\r\n      text.split(\/\\r?\\n\/).forEach(line => {\r\n        const m = line.trim().match(\/^(.+?)\\s+([\\d,]+)$\/);\r\n        if (!m) { rejected++; return; }\r\n        const qty = parseInt(m[2].replace(\/,\/g,\"\")) || 1;\r\n        if (addItem(m[1].trim(), qty)) added++; else rejected++;\r\n      });\r\n      $(\"pasteBox\").value = \"\";\r\n      showToast(`Added ${added} items${rejected ? `, ${rejected} rejected` : \"\"}`);\r\n    }\r\n\r\n    \/\/ Share feature\r\n    function serializeInventory() {\r\n      if (inventory.size === 0) return '';\r\n      return Array.from(inventory.entries()).map(([id, qty]) => `${id}:${qty}`).join(',');\r\n    }\r\n\r\n    function getShareURL() {\r\n      const invStr = serializeInventory();\r\n      if (!invStr) return null;\r\n      const url = new URL(window.location.href);\r\n      url.searchParams.set('inv', invStr);\r\n      return url.toString();\r\n    }\r\n\r\n    function loadFromURL() {\r\n      const params = new URLSearchParams(window.location.search);\r\n      const invStr = params.get('inv');\r\n      if (!invStr) return false;\r\n\r\n      inventory.clear();\r\n      let loaded = 0;\r\n      invStr.split(',').forEach(pair => {\r\n        const [tidStr, qtyStr] = pair.split(':');\r\n        const typeID = parseInt(tidStr);\r\n        const qty = Math.max(1, parseInt(qtyStr) || 1);\r\n        if (typeID && itemMap.has(typeID)) {\r\n          inventory.set(typeID, qty);\r\n          loaded++;\r\n        }\r\n      });\r\n\r\n      if (loaded > 0) {\r\n        renderInventory();\r\n        showToast(`Loaded shared inventory (${loaded} items)`);\r\n        setTimeout(() => analyze(), 80);\r\n        return true;\r\n      }\r\n      return false;\r\n    }\r\n\r\n    async function loadData() {\r\n      const res = await fetch(JSON_URL);\r\n      const data = await res.json();\r\n\r\n      for (const bp of data.blueprints || []) {\r\n        const act = (bp.build?.activities?.manufacturing) || bp.build || {};\r\n        const mats = act.materials || bp.build?.materials || [];\r\n        const prods = act.products || (bp.build?.manufactures ? [bp.build.manufactures] : []);\r\n        const time = act.time || bp.build?.time || 0;\r\n        const key = `${bp.typeID}_0`;\r\n\r\n        let iconFile = null;\r\n        if (bp.iconID) iconFile = `${bp.iconID}.png`;\r\n        else if (bp.graphicID) iconFile = `g${bp.graphicID}.png`;\r\n\r\n        blueprintRecipes.set(key, {\r\n          name: bp.name,\r\n          group: bp.group || \"Other\",\r\n          time: time,\r\n          iconFile: iconFile,\r\n          materials: mats.map(m => ({typeID: m.typeID, name: m.name, quantity: m.quantity || 1})),\r\n          products: prods.map(p => ({typeID: p.typeID, name: p.name, quantity: p.quantity || 1}))\r\n        });\r\n\r\n        \/\/ Store icon for the blueprint itself\r\n        if (iconFile && !itemIcons.has(bp.typeID)) {\r\n          itemIcons.set(bp.typeID, iconFile);\r\n        }\r\n\r\n        for (const p of prods) {\r\n          if (!producedBy.has(p.typeID)) producedBy.set(p.typeID, []);\r\n          producedBy.get(p.typeID).push({ recipeKey: key });\r\n\r\n          \/\/ IMPROVED: Prefer icon from blueprint whose name matches the product\r\n          if (iconFile) {\r\n            const current = itemIcons.get(p.typeID);\r\n            const bpName = bp.name.toLowerCase();\r\n            const prodName = p.name.toLowerCase();\r\n            const isGoodMatch = bpName.includes(prodName) || prodName.includes(bpName.replace(\" blueprint\", \"\"));\r\n\r\n            if (!current || isGoodMatch) {\r\n              itemIcons.set(p.typeID, iconFile);\r\n            }\r\n          }\r\n        }\r\n\r\n        [...mats, ...prods].forEach(item => {\r\n          if (item.typeID && item.name) {\r\n            itemMap.set(item.typeID, item.name);\r\n            nameToTypeID.set(item.name, item.typeID);\r\n            validNames.add(item.name.toLowerCase());\r\n          }\r\n        });\r\n      }\r\n      allItemNames = Array.from(nameToTypeID.keys()).sort();\r\n    }\r\n\r\n    function analyze() {\r\n      if (inventory.size === 0) { showToast(\"Add items first\"); return; }\r\n      \r\n      const craftable = [];\r\n      \r\n      for (const [key, recipe] of blueprintRecipes) {\r\n        let maxRuns = Infinity;\r\n        let canRun = true;\r\n\r\n        for (const mat of recipe.materials) {\r\n          const have = inventory.get(mat.typeID) || 0;\r\n          if (have < mat.quantity) {\r\n            canRun = false;\r\n            break;\r\n          }\r\n          const possible = Math.floor(have \/ mat.quantity);\r\n          if (possible < maxRuns) maxRuns = possible;\r\n        }\r\n\r\n        if (canRun) {\r\n          if (maxRuns > 0) {\r\n            craftable.push({\r\n              ...recipe,\r\n              maxRuns: maxRuns,\r\n              totalTime: maxRuns * recipe.time\r\n            });\r\n          }\r\n        }\r\n      }\r\n\r\n      const results = $(\"results\");\r\n      \r\n      if (craftable.length === 0) {\r\n        results.innerHTML = `<div class=\"result-summary warning\">You cannot run any blueprints with your current stock.<\/div>`;\r\n        return;\r\n      }\r\n\r\n      let totalTime = 0;\r\n      for (let i = 0; i < craftable.length; i++) {\r\n        totalTime += craftable[i].totalTime;\r\n      }\r\n\r\n      let html = `\r\n        <h2 style=\"margin-top:0\">What You Can Build Right Now<\/h2>\r\n        <div class=\"result-summary\">\r\n          <strong>${craftable.length}<\/strong> blueprints you can run<br>\r\n          Total production time: <strong>${secsToHMS(totalTime)}<\/strong>\r\n        <\/div>\r\n        <h3>Craftable Blueprints<\/h3>\r\n      `;\r\n\r\n      craftable.sort((a, b) => b.maxRuns - a.maxRuns);\r\n\r\n      for (let i = 0; i < craftable.length; i++) {\r\n        const bp = craftable[i];\r\n        const mainProduct = bp.products[0];\r\n        const productIcon = mainProduct ? getItemIconHTML(mainProduct.typeID) : \r\n          `<div class=\"icon\" style=\"width:28px;height:28px;\"><i class=\"fa fa-industry\"><\/i><\/div>`;\r\n        \r\n        html += `\r\n          <div class=\"craftable\">\r\n            <div style=\"display:flex; align-items:center; justify-content:space-between;\">\r\n              <div style=\"display:flex; align-items:center;\">\r\n                ${productIcon}\r\n                <div>\r\n                  <strong>${bp.name}<\/strong> <span class=\"faint\">(${bp.group})<\/span>\r\n                <\/div>\r\n              <\/div>\r\n              <div><span class=\"badge success\">Max Runs: ${bp.maxRuns.toLocaleString()}<\/span><\/div>\r\n            <\/div>\r\n            <div style=\"margin:6px 0 0 38px; font-size:13px\">\r\n              Produces: ${bp.products.map(p => `${p.name} \u00d7 ${p.quantity * bp.maxRuns}`).join(\", \")}\r\n            <\/div>\r\n            <div style=\"margin-left:38px; font-size:12px; color:#9aa4b2; margin-top:4px;\">\r\n              Total Time: ${secsToHMS(bp.totalTime)}\r\n            <\/div>\r\n            <div style=\"margin-left:38px; margin-top:10px;\">\r\n              <div style=\"font-size:12px; color:#9aa4b2; margin-bottom:4px; font-weight:500;\">Materials Required:<\/div>\r\n              <ol style=\"margin:0; padding-left:18px; font-size:13px; line-height:1.5;\">\r\n                ${bp.materials.map(mat => `\r\n                  <li style=\"margin-bottom:4px; display:flex; align-items:center; gap:6px;\">\r\n                    ${getItemIconHTML(mat.typeID)}\r\n                    <span>${mat.name} \u00d7 <strong>${(mat.quantity * bp.maxRuns).toLocaleString()}<\/strong><\/span>\r\n                  <\/li>\r\n                `).join('')}\r\n              <\/ol>\r\n            <\/div>\r\n          <\/div>\r\n        `;\r\n      }\r\n      results.innerHTML = html;\r\n\r\n      const exp = document.createElement(\"button\");\r\n      exp.className = \"btn btn-primary\";\r\n      exp.style.marginTop = \"12px\";\r\n      exp.innerHTML = \"Export to CSV\";\r\n      exp.onclick = () => exportCSV(craftable);\r\n      results.appendChild(exp);\r\n    }\r\n\r\n    function exportCSV(list) {\r\n      let csv = \"Blueprint,Group,Max Runs,Total Time,Products\\n\";\r\n      for (let i = 0; i < list.length; i++) {\r\n        const bp = list[i];\r\n        csv += `\"${bp.name}\",\"${bp.group}\",${bp.maxRuns},\"${secsToHMS(bp.totalTime)}\",\"${bp.products.map(p=>p.name).join(\" + \")}\"\\n`;\r\n      }\r\n      const blob = new Blob([csv], {type:\"text\/csv\"});\r\n      const a = document.createElement(\"a\");\r\n      a.href = URL.createObjectURL(blob);\r\n      a.download = \"EVE_Frontier_What_I_Can_Build.csv\";\r\n      a.click();\r\n    }\r\n\r\n    function secsToHMS(s) {\r\n      if (!Number.isFinite(s)) return \"\u2014\";\r\n      const d = Math.floor(s\/86400);\r\n      const h = Math.floor((s%86400)\/3600);\r\n      const m = Math.floor((s%3600)\/60);\r\n      let parts = [];\r\n      if (d > 0) parts.push(d + \"d\");\r\n      if (h > 0) parts.push(h + \"h\");\r\n      if (m > 0) parts.push(m + \"m\");\r\n      if (parts.length === 0) parts.push(\"0s\");\r\n      return parts.join(\" \");\r\n    }\r\n\r\n    function renderInitialState() {\r\n      const results = $(\"results\");\r\n      const totalBlueprints = blueprintRecipes.size;\r\n      const totalMaterials = itemMap.size;\r\n\r\n      results.innerHTML = `\r\n        <div class=\"initial-welcome\">\r\n          <h2 style=\"margin:0 0 6px; font-size:22px; display:flex; align-items:center; gap:10px;\">\r\n            <span style=\"color:#39d0ff\">\ud83d\ude80<\/span> Ready to Build?\r\n          <\/h2>\r\n          <p style=\"margin:0 0 4px; color:#9aa4b2; font-size:13.5px;\">\r\n            Your inventory is empty. Add items from field storage or try the demo below.\r\n          <\/p>\r\n          <div class=\"stat-grid\">\r\n            <div class=\"stat-card\"><div class=\"num\">${totalBlueprints}<\/div><div class=\"label\">Blueprints in Database<\/div><\/div>\r\n            <div class=\"stat-card\"><div class=\"num\">${totalMaterials}<\/div><div class=\"label\">Unique Materials Tracked<\/div><\/div>\r\n            <div class=\"stat-card\"><div class=\"num\">\u221e<\/div><div class=\"label\">Possible Builds<\/div><\/div>\r\n          <\/div>\r\n          <div style=\"margin-bottom:6px; font-weight:600; font-size:13px; color:#e6edf3;\">How to use this tool<\/div>\r\n          <div class=\"step-list\">\r\n            <div class=\"step\"><div class=\"step-num\">1<\/div><div class=\"step-content\"><strong>Paste or search<\/strong> \u2014 Open your Field Storage, select all (Ctrl+A), copy (Ctrl+C) and paste above, or use the search box to add items manually.<\/div><\/div>\r\n            <div class=\"step\"><div class=\"step-num\">2<\/div><div class=\"step-content\"><strong>Hit Analyze<\/strong> \u2014 We instantly calculate every blueprint you can currently run with your stock.<\/div><\/div>\r\n            <div class=\"step\"><div class=\"step-num\">3<\/div><div class=\"step-content\"><strong>See results, export or share<\/strong> \u2014 View max runs, total build time, required materials, and share the link with friends.<\/div><\/div>\r\n          <\/div>\r\n          <button id=\"demoBtn\" class=\"btn btn-primary demo-btn\">\u2728 Load Demo Inventory &amp; Analyze<\/button>\r\n          <div class=\"initial-footer\">Data pulled live from EVE Frontier \u2022 Built for industrialists &amp; miners<\/div>\r\n        <\/div>`;\r\n      \r\n      const demoBtn = $(\"demoBtn\");\r\n      if (demoBtn) demoBtn.onclick = loadDemoInventory;\r\n    }\r\n\r\n    function loadDemoInventory() {\r\n      inventory.clear();\r\n      const demoItems = [\r\n        { name: \"Hydrated Sulfide Matrix\", qty: 1200 }, { name: \"Platinum-Palladium Matrix\", qty: 1100 },\r\n        { name: \"Iron-Rich Nodules\", qty: 2500 }, { name: \"Nickel-Iron Veins\", qty: 1800 },\r\n        { name: \"Silica Grains\", qty: 2200 }, { name: \"Feldspar Crystal Shards\", qty: 1600 },\r\n        { name: \"Troilite Sulfide Grains\", qty: 1400 }, { name: \"Printed Circuits\", qty: 450 },\r\n        { name: \"Reinforced Alloys\", qty: 380 }, { name: \"Thermal Composites\", qty: 320 },\r\n        { name: \"Carbon Weave\", qty: 290 }, { name: \"Still Kernel\", qty: 180 },\r\n        { name: \"Palladium\", qty: 950 }, { name: \"Hydrocarbon Residue\", qty: 1100 }\r\n      ];\r\n      let addedCount = 0;\r\n      demoItems.forEach(item => { if (addItem(item.name, item.qty)) addedCount++; });\r\n      renderInventory();\r\n      showToast(`Demo loaded with ${addedCount} materials \u2022 Analyzing...`);\r\n      setTimeout(() => analyze(), 150);\r\n    }\r\n\r\n    async function init() {\r\n      await loadData();\r\n      setupAutocomplete();\r\n      renderInventory();\r\n\r\n      const loadedFromShare = loadFromURL();\r\n      if (!loadedFromShare) {\r\n        renderInitialState();\r\n      }\r\n\r\n      $(\"addBtn\").onclick = () => {\r\n        const name = $(\"search\").value.trim();\r\n        const q = parseInt($(\"qty\").value) || 1;\r\n        if (name && addItem(name, q)) {\r\n          $(\"search\").value = \"\";\r\n          $(\"suggestions\").style.display = \"none\";\r\n        }\r\n      };\r\n      $(\"search\").onkeypress = e => { if (e.key === \"Enter\") $(\"addBtn\").click(); };\r\n      $(\"parseBtn\").onclick = parsePaste;\r\n\r\n      $(\"clearBtn\").onclick = () => {\r\n        inventory.clear();\r\n        renderInventory();\r\n        $(\"results\").innerHTML = \"\";\r\n        renderInitialState();\r\n      };\r\n\r\n      $(\"analyzeBtn\").onclick = analyze;\r\n\r\n      $(\"shareBtn\").onclick = async () => {\r\n        const url = getShareURL();\r\n        if (!url) { showToast(\"Add some items first to share\"); return; }\r\n        try {\r\n          await navigator.clipboard.writeText(url);\r\n          const originalText = $(\"shareBtn\").innerHTML;\r\n          $(\"shareBtn\").innerHTML = \"\u2705 Copied!\";\r\n          $(\"shareBtn\").style.borderColor = \"#00ffa8\";\r\n          setTimeout(() => {\r\n            $(\"shareBtn\").innerHTML = originalText;\r\n            $(\"shareBtn\").style.borderColor = \"#3a3f4d\";\r\n          }, 2000);\r\n        } catch (e) {\r\n          const ta = document.createElement(\"textarea\");\r\n          ta.value = url; document.body.appendChild(ta); ta.select();\r\n          document.execCommand(\"copy\"); document.body.removeChild(ta);\r\n          showToast(\"Link copied to clipboard\");\r\n        }\r\n      };\r\n    }\r\n    init();\r\n  })();\r\n  <\/script>\r\n<\/div>\r\n","protected":false},"excerpt":{"rendered":"<p>Wondering what you can make with all the items in your storage? Use our tool to find all the various blueprints you can craft! Open up your field storage, Press (Ctrl-A \u2192 Ctrl-C) then Parse Data or add items manually. Share the link with friends to show them exactly what you can build. Your Inventory [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":249,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[],"class_list":["post-233","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tools"],"yoast_head":"<!-- Meta Tags -->\r\n<title>EVE Frontier What Can I Make with this?<\/title>\r\n<meta name=\"description\" content=\"Wondering what you can make with all the items in your storage? Use our tool to find all the various blueprints you can craft! Open up your field storage,\" \/>\r\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\r\n<link rel=\"canonical\" href=\"https:\/\/gamingwithdaopa.ellatha.com\/evefrontier\/what-can-i-make-with-this\/\" \/>\r\n<meta property=\"og:locale\" content=\"en_US\" \/>\r\n<meta property=\"og:type\" content=\"article\" \/>\r\n<meta property=\"og:title\" content=\"EVE Frontier What Can I Make with this?\" \/>\r\n<meta property=\"og:description\" content=\"Wondering what you can make with all the items in your storage? Use our tool to find all the various blueprints you can craft! Open up your field storage,\" \/>\r\n<meta property=\"og:url\" content=\"https:\/\/gamingwithdaopa.ellatha.com\/evefrontier\/what-can-i-make-with-this\/\" \/>\r\n<meta property=\"og:site_name\" content=\"EVE Frontier\" \/>\r\n<meta property=\"article:publisher\" content=\"facebook.com\/gamingwithdaopa\/\" \/>\r\n<meta property=\"article:author\" content=\"facebook.com\/gamingwithdaopa\/\" \/>\r\n<meta property=\"article:published_time\" content=\"2026-06-04T04:15:01+00:00\" \/>\r\n<meta property=\"article:modified_time\" content=\"2026-06-05T00:29:15+00:00\" \/>\r\n<meta property=\"og:image\" content=\"https:\/\/gamingwithdaopa.ellatha.com\/evefrontier\/wp-content\/uploads\/sites\/40\/2026\/06\/eve-frontier-what-can-i-make-with-this.jpg\" \/>\r\n\t<meta property=\"og:image:width\" content=\"400\" \/>\r\n\t<meta property=\"og:image:height\" content=\"263\" \/>\r\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\r\n<meta name=\"author\" content=\"daopa\" \/>\r\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\r\n<meta name=\"twitter:creator\" content=\"@gamingwithdaopa\" \/>\r\n<meta name=\"twitter:site\" content=\"@gamingwithdaopa\" \/>\r\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"daopa\" \/>\r\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/gamingwithdaopa.ellatha.com\/evefrontier\/what-can-i-make-with-this\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/gamingwithdaopa.ellatha.com\/evefrontier\/what-can-i-make-with-this\/\"},\"author\":{\"name\":\"daopa\",\"@id\":\"https:\/\/gamingwithdaopa.ellatha.com\/evefrontier\/#\/schema\/person\/fb03a927907d90f409fac550ba375638\"},\"headline\":\"EVE Frontier What Can I Make with this?\",\"datePublished\":\"2026-06-04T04:15:01+00:00\",\"dateModified\":\"2026-06-05T00:29:15+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/gamingwithdaopa.ellatha.com\/evefrontier\/what-can-i-make-with-this\/\"},\"wordCount\":77,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/gamingwithdaopa.ellatha.com\/evefrontier\/#\/schema\/person\/fb03a927907d90f409fac550ba375638\"},\"image\":{\"@id\":\"https:\/\/gamingwithdaopa.ellatha.com\/evefrontier\/what-can-i-make-with-this\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/gamingwithdaopa.ellatha.com\/evefrontier\/wp-content\/uploads\/sites\/40\/2026\/06\/eve-frontier-what-can-i-make-with-this.jpg\",\"articleSection\":[\"Tools\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/gamingwithdaopa.ellatha.com\/evefrontier\/what-can-i-make-with-this\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/gamingwithdaopa.ellatha.com\/evefrontier\/what-can-i-make-with-this\/\",\"url\":\"https:\/\/gamingwithdaopa.ellatha.com\/evefrontier\/what-can-i-make-with-this\/\",\"name\":\"EVE Frontier What Can I Make with this?\",\"isPartOf\":{\"@id\":\"https:\/\/gamingwithdaopa.ellatha.com\/evefrontier\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/gamingwithdaopa.ellatha.com\/evefrontier\/what-can-i-make-with-this\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/gamingwithdaopa.ellatha.com\/evefrontier\/what-can-i-make-with-this\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/gamingwithdaopa.ellatha.com\/evefrontier\/wp-content\/uploads\/sites\/40\/2026\/06\/eve-frontier-what-can-i-make-with-this.jpg\",\"datePublished\":\"2026-06-04T04:15:01+00:00\",\"dateModified\":\"2026-06-05T00:29:15+00:00\",\"description\":\"Wondering what you can make with all the items in your storage? Use our tool to find all the various blueprints you can craft! Open up your field storage,\",\"breadcrumb\":{\"@id\":\"https:\/\/gamingwithdaopa.ellatha.com\/evefrontier\/what-can-i-make-with-this\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/gamingwithdaopa.ellatha.com\/evefrontier\/what-can-i-make-with-this\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/gamingwithdaopa.ellatha.com\/evefrontier\/what-can-i-make-with-this\/#primaryimage\",\"url\":\"https:\/\/gamingwithdaopa.ellatha.com\/evefrontier\/wp-content\/uploads\/sites\/40\/2026\/06\/eve-frontier-what-can-i-make-with-this.jpg\",\"contentUrl\":\"https:\/\/gamingwithdaopa.ellatha.com\/evefrontier\/wp-content\/uploads\/sites\/40\/2026\/06\/eve-frontier-what-can-i-make-with-this.jpg\",\"width\":400,\"height\":263,\"caption\":\"eve frontier what can i make with this\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/gamingwithdaopa.ellatha.com\/evefrontier\/what-can-i-make-with-this\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/gamingwithdaopa.ellatha.com\/evefrontier\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"EVE Frontier What Can I Make with this?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/gamingwithdaopa.ellatha.com\/evefrontier\/#website\",\"url\":\"https:\/\/gamingwithdaopa.ellatha.com\/evefrontier\/\",\"name\":\"EVE Frontier\",\"description\":\"DaOpa&#039;s EVE Frontier Fansite - Guides, tools, databases, and lists to empower the EVE Frontier community in exploring the stars.\",\"publisher\":{\"@id\":\"https:\/\/gamingwithdaopa.ellatha.com\/evefrontier\/#\/schema\/person\/fb03a927907d90f409fac550ba375638\"},\"alternateName\":\"evefrontier\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/gamingwithdaopa.ellatha.com\/evefrontier\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/gamingwithdaopa.ellatha.com\/evefrontier\/#\/schema\/person\/fb03a927907d90f409fac550ba375638\",\"name\":\"daopa\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/gamingwithdaopa.ellatha.com\/evefrontier\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/gamingwithdaopa.ellatha.com\/evefrontier\/wp-content\/uploads\/sites\/40\/2025\/08\/90-90-Logo.png\",\"contentUrl\":\"https:\/\/gamingwithdaopa.ellatha.com\/evefrontier\/wp-content\/uploads\/sites\/40\/2025\/08\/90-90-Logo.png\",\"width\":90,\"height\":90,\"caption\":\"daopa\"},\"logo\":{\"@id\":\"https:\/\/gamingwithdaopa.ellatha.com\/evefrontier\/#\/schema\/person\/image\/\"},\"description\":\"DaOpa has been variety streamer since 2009 with game focuses on primarily MMOs, Sandbox, RPG and FPS genres. For inquires comment in the comments sections. This channel is syndicated across various micro niche gaming related blogs operated by DaOpa. He creates fansites, guides, tools for gamers\",\"sameAs\":[\"https:\/\/gamingwithdaopa.ellatha.com\",\"facebook.com\/gamingwithdaopa\/\",\"https:\/\/x.com\/gamingwithdaopa\",\"youtube.com\/@daopa\"],\"url\":\"https:\/\/gamingwithdaopa.ellatha.com\/evefrontier\/author\/daopa\/\"}]}<\/script>","yoast_head_json":{"title":"EVE Frontier What Can I Make with this?","description":"Wondering what you can make with all the items in your storage? Use our tool to find all the various blueprints you can craft! Open up your field storage,","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/gamingwithdaopa.ellatha.com\/evefrontier\/what-can-i-make-with-this\/","og_locale":"en_US","og_type":"article","og_title":"EVE Frontier What Can I Make with this?","og_description":"Wondering what you can make with all the items in your storage? Use our tool to find all the various blueprints you can craft! Open up your field storage,","og_url":"https:\/\/gamingwithdaopa.ellatha.com\/evefrontier\/what-can-i-make-with-this\/","og_site_name":"EVE Frontier","article_publisher":"facebook.com\/gamingwithdaopa\/","article_author":"facebook.com\/gamingwithdaopa\/","article_published_time":"2026-06-04T04:15:01+00:00","article_modified_time":"2026-06-05T00:29:15+00:00","og_image":[{"width":400,"height":263,"url":"https:\/\/gamingwithdaopa.ellatha.com\/evefrontier\/wp-content\/uploads\/sites\/40\/2026\/06\/eve-frontier-what-can-i-make-with-this.jpg","type":"image\/jpeg"}],"author":"daopa","twitter_card":"summary_large_image","twitter_creator":"@gamingwithdaopa","twitter_site":"@gamingwithdaopa","twitter_misc":{"Written by":"daopa"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/gamingwithdaopa.ellatha.com\/evefrontier\/what-can-i-make-with-this\/#article","isPartOf":{"@id":"https:\/\/gamingwithdaopa.ellatha.com\/evefrontier\/what-can-i-make-with-this\/"},"author":{"name":"daopa","@id":"https:\/\/gamingwithdaopa.ellatha.com\/evefrontier\/#\/schema\/person\/fb03a927907d90f409fac550ba375638"},"headline":"EVE Frontier What Can I Make with this?","datePublished":"2026-06-04T04:15:01+00:00","dateModified":"2026-06-05T00:29:15+00:00","mainEntityOfPage":{"@id":"https:\/\/gamingwithdaopa.ellatha.com\/evefrontier\/what-can-i-make-with-this\/"},"wordCount":77,"commentCount":0,"publisher":{"@id":"https:\/\/gamingwithdaopa.ellatha.com\/evefrontier\/#\/schema\/person\/fb03a927907d90f409fac550ba375638"},"image":{"@id":"https:\/\/gamingwithdaopa.ellatha.com\/evefrontier\/what-can-i-make-with-this\/#primaryimage"},"thumbnailUrl":"https:\/\/gamingwithdaopa.ellatha.com\/evefrontier\/wp-content\/uploads\/sites\/40\/2026\/06\/eve-frontier-what-can-i-make-with-this.jpg","articleSection":["Tools"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/gamingwithdaopa.ellatha.com\/evefrontier\/what-can-i-make-with-this\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/gamingwithdaopa.ellatha.com\/evefrontier\/what-can-i-make-with-this\/","url":"https:\/\/gamingwithdaopa.ellatha.com\/evefrontier\/what-can-i-make-with-this\/","name":"EVE Frontier What Can I Make with this?","isPartOf":{"@id":"https:\/\/gamingwithdaopa.ellatha.com\/evefrontier\/#website"},"primaryImageOfPage":{"@id":"https:\/\/gamingwithdaopa.ellatha.com\/evefrontier\/what-can-i-make-with-this\/#primaryimage"},"image":{"@id":"https:\/\/gamingwithdaopa.ellatha.com\/evefrontier\/what-can-i-make-with-this\/#primaryimage"},"thumbnailUrl":"https:\/\/gamingwithdaopa.ellatha.com\/evefrontier\/wp-content\/uploads\/sites\/40\/2026\/06\/eve-frontier-what-can-i-make-with-this.jpg","datePublished":"2026-06-04T04:15:01+00:00","dateModified":"2026-06-05T00:29:15+00:00","description":"Wondering what you can make with all the items in your storage? Use our tool to find all the various blueprints you can craft! Open up your field storage,","breadcrumb":{"@id":"https:\/\/gamingwithdaopa.ellatha.com\/evefrontier\/what-can-i-make-with-this\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/gamingwithdaopa.ellatha.com\/evefrontier\/what-can-i-make-with-this\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/gamingwithdaopa.ellatha.com\/evefrontier\/what-can-i-make-with-this\/#primaryimage","url":"https:\/\/gamingwithdaopa.ellatha.com\/evefrontier\/wp-content\/uploads\/sites\/40\/2026\/06\/eve-frontier-what-can-i-make-with-this.jpg","contentUrl":"https:\/\/gamingwithdaopa.ellatha.com\/evefrontier\/wp-content\/uploads\/sites\/40\/2026\/06\/eve-frontier-what-can-i-make-with-this.jpg","width":400,"height":263,"caption":"eve frontier what can i make with this"},{"@type":"BreadcrumbList","@id":"https:\/\/gamingwithdaopa.ellatha.com\/evefrontier\/what-can-i-make-with-this\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/gamingwithdaopa.ellatha.com\/evefrontier\/"},{"@type":"ListItem","position":2,"name":"EVE Frontier What Can I Make with this?"}]},{"@type":"WebSite","@id":"https:\/\/gamingwithdaopa.ellatha.com\/evefrontier\/#website","url":"https:\/\/gamingwithdaopa.ellatha.com\/evefrontier\/","name":"EVE Frontier","description":"DaOpa&#039;s EVE Frontier Fansite - Guides, tools, databases, and lists to empower the EVE Frontier community in exploring the stars.","publisher":{"@id":"https:\/\/gamingwithdaopa.ellatha.com\/evefrontier\/#\/schema\/person\/fb03a927907d90f409fac550ba375638"},"alternateName":"evefrontier","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/gamingwithdaopa.ellatha.com\/evefrontier\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/gamingwithdaopa.ellatha.com\/evefrontier\/#\/schema\/person\/fb03a927907d90f409fac550ba375638","name":"daopa","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/gamingwithdaopa.ellatha.com\/evefrontier\/#\/schema\/person\/image\/","url":"https:\/\/gamingwithdaopa.ellatha.com\/evefrontier\/wp-content\/uploads\/sites\/40\/2025\/08\/90-90-Logo.png","contentUrl":"https:\/\/gamingwithdaopa.ellatha.com\/evefrontier\/wp-content\/uploads\/sites\/40\/2025\/08\/90-90-Logo.png","width":90,"height":90,"caption":"daopa"},"logo":{"@id":"https:\/\/gamingwithdaopa.ellatha.com\/evefrontier\/#\/schema\/person\/image\/"},"description":"DaOpa has been variety streamer since 2009 with game focuses on primarily MMOs, Sandbox, RPG and FPS genres. For inquires comment in the comments sections. This channel is syndicated across various micro niche gaming related blogs operated by DaOpa. He creates fansites, guides, tools for gamers","sameAs":["https:\/\/gamingwithdaopa.ellatha.com","facebook.com\/gamingwithdaopa\/","https:\/\/x.com\/gamingwithdaopa","youtube.com\/@daopa"],"url":"https:\/\/gamingwithdaopa.ellatha.com\/evefrontier\/author\/daopa\/"}]}},"_links":{"self":[{"href":"https:\/\/gamingwithdaopa.ellatha.com\/evefrontier\/wp-json\/wp\/v2\/posts\/233","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gamingwithdaopa.ellatha.com\/evefrontier\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gamingwithdaopa.ellatha.com\/evefrontier\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/gamingwithdaopa.ellatha.com\/evefrontier\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/gamingwithdaopa.ellatha.com\/evefrontier\/wp-json\/wp\/v2\/comments?post=233"}],"version-history":[{"count":3,"href":"https:\/\/gamingwithdaopa.ellatha.com\/evefrontier\/wp-json\/wp\/v2\/posts\/233\/revisions"}],"predecessor-version":[{"id":257,"href":"https:\/\/gamingwithdaopa.ellatha.com\/evefrontier\/wp-json\/wp\/v2\/posts\/233\/revisions\/257"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/gamingwithdaopa.ellatha.com\/evefrontier\/wp-json\/wp\/v2\/media\/249"}],"wp:attachment":[{"href":"https:\/\/gamingwithdaopa.ellatha.com\/evefrontier\/wp-json\/wp\/v2\/media?parent=233"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gamingwithdaopa.ellatha.com\/evefrontier\/wp-json\/wp\/v2\/categories?post=233"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gamingwithdaopa.ellatha.com\/evefrontier\/wp-json\/wp\/v2\/tags?post=233"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}