Repository files navigation

NGECore2

The ProjectSWG Open Source Project's aim is to create a server emulator for the sandbox MMO Star Wars Galaxies at its final publish before shutdown on 15/12/2011.

The Open Source Version of ProjectSWG is restricted to 30 minutes uptime and upto 5 connections to ensure that the community is not split between several small servers. This restriction will not be lifted. It is not legal to remove this restriction, per the license.

The Engine (NGEngine) is a closed source library and is only licensed for use with this project. The Core (NGECore2) is licensed under the L-GPL License. By using NGECore2, you agree to the terms of both licenses.

Requirements for Building the Core:

Setting up the core

A video tutorial of this process can be viewed at http://www.projectswg.com/showthread.php?t=40304

  1. Once you have met the requirements, fork the project and then proceed to clone your copy of the repository to your computer.
  2. Import the project to Eclipse.
  3. Create a postgres DB and restore the nge.backup file. Depending on each update, you may or may not have to repeat this process. Once restored, create an account for yourself in the accounts table of your database, and update the connectionServers table with the appropriate IP address of your server, in the address field.
  4. Copy nge.cfg.example to nge.cfg, and add your DB credentials and name.
  5. Create a directory named "clientdata" inside your NGECore2 git repo.
  6. Open TRE Explorer and proceed open the sku0_client.toc in your SWG directory. Export the following directories to your clientdata directory:
  • abstract
  • appearance
  • creation
  • customization
  • datatables
  • footprint
  • interiorlayout
  • misc
  • object
  • quest
  • snapshot
  • string
  • terrain

Repeat the above extraction process with the sku1_client.toc, sku2_client.toc and sku3_client.toc files to avoid errors with kashyyyk.

You are now ready to run the core!

Contributing and Submitting patches

To contribute, commit your changes to your fork of the project and then submit a pull request.

Your changes will be reviewed by other developers. Once the changes are approved, your pull request will be merged into the main repository.

Please prefix all commits with Added, Changed, Removed or Fixed. If you don't have enough room for multiple changes, use the extended description. Try not to bundle multiple changes into one vague line (ie. "Changed various combat things"). Try to make all commit messages understandable by non-programmers.

About

The ProjectSWG Open Source Core

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

, '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

Repository files navigation

NGECore2

The ProjectSWG Open Source Project's aim is to create a server emulator for the sandbox MMO Star Wars Galaxies at its final publish before shutdown on 15/12/2011.

The Open Source Version of ProjectSWG is restricted to 30 minutes uptime and upto 5 connections to ensure that the community is not split between several small servers. This restriction will not be lifted. It is not legal to remove this restriction, per the license.

The Engine (NGEngine) is a closed source library and is only licensed for use with this project. The Core (NGECore2) is licensed under the L-GPL License. By using NGECore2, you agree to the terms of both licenses.

Requirements for Building the Core:

Setting up the core

A video tutorial of this process can be viewed at http://www.projectswg.com/showthread.php?t=40304

  1. Once you have met the requirements, fork the project and then proceed to clone your copy of the repository to your computer.
  2. Import the project to Eclipse.
  3. Create a postgres DB and restore the nge.backup file. Depending on each update, you may or may not have to repeat this process. Once restored, create an account for yourself in the accounts table of your database, and update the connectionServers table with the appropriate IP address of your server, in the address field.
  4. Copy nge.cfg.example to nge.cfg, and add your DB credentials and name.
  5. Create a directory named "clientdata" inside your NGECore2 git repo.
  6. Open TRE Explorer and proceed open the sku0_client.toc in your SWG directory. Export the following directories to your clientdata directory:
  • abstract
  • appearance
  • creation
  • customization
  • datatables
  • footprint
  • interiorlayout
  • misc
  • object
  • quest
  • snapshot
  • string
  • terrain

Repeat the above extraction process with the sku1_client.toc, sku2_client.toc and sku3_client.toc files to avoid errors with kashyyyk.

You are now ready to run the core!

Contributing and Submitting patches

To contribute, commit your changes to your fork of the project and then submit a pull request.

Your changes will be reviewed by other developers. Once the changes are approved, your pull request will be merged into the main repository.

Please prefix all commits with Added, Changed, Removed or Fixed. If you don't have enough room for multiple changes, use the extended description. Try not to bundle multiple changes into one vague line (ie. "Changed various combat things"). Try to make all commit messages understandable by non-programmers.

About

The ProjectSWG Open Source Core

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

, '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

Repository files navigation

NGECore2

The ProjectSWG Open Source Project's aim is to create a server emulator for the sandbox MMO Star Wars Galaxies at its final publish before shutdown on 15/12/2011.

The Open Source Version of ProjectSWG is restricted to 30 minutes uptime and upto 5 connections to ensure that the community is not split between several small servers. This restriction will not be lifted. It is not legal to remove this restriction, per the license.

The Engine (NGEngine) is a closed source library and is only licensed for use with this project. The Core (NGECore2) is licensed under the L-GPL License. By using NGECore2, you agree to the terms of both licenses.

Requirements for Building the Core:

Setting up the core

A video tutorial of this process can be viewed at http://www.projectswg.com/showthread.php?t=40304

  1. Once you have met the requirements, fork the project and then proceed to clone your copy of the repository to your computer.
  2. Import the project to Eclipse.
  3. Create a postgres DB and restore the nge.backup file. Depending on each update, you may or may not have to repeat this process. Once restored, create an account for yourself in the accounts table of your database, and update the connectionServers table with the appropriate IP address of your server, in the address field.
  4. Copy nge.cfg.example to nge.cfg, and add your DB credentials and name.
  5. Create a directory named "clientdata" inside your NGECore2 git repo.
  6. Open TRE Explorer and proceed open the sku0_client.toc in your SWG directory. Export the following directories to your clientdata directory:
  • abstract
  • appearance
  • creation
  • customization
  • datatables
  • footprint
  • interiorlayout
  • misc
  • object
  • quest
  • snapshot
  • string
  • terrain

Repeat the above extraction process with the sku1_client.toc, sku2_client.toc and sku3_client.toc files to avoid errors with kashyyyk.

You are now ready to run the core!

Contributing and Submitting patches

To contribute, commit your changes to your fork of the project and then submit a pull request.

Your changes will be reviewed by other developers. Once the changes are approved, your pull request will be merged into the main repository.

Please prefix all commits with Added, Changed, Removed or Fixed. If you don't have enough room for multiple changes, use the extended description. Try not to bundle multiple changes into one vague line (ie. "Changed various combat things"). Try to make all commit messages understandable by non-programmers.

About

The ProjectSWG Open Source Core

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

, '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

Repository files navigation

NGECore2

The ProjectSWG Open Source Project's aim is to create a server emulator for the sandbox MMO Star Wars Galaxies at its final publish before shutdown on 15/12/2011.

The Open Source Version of ProjectSWG is restricted to 30 minutes uptime and upto 5 connections to ensure that the community is not split between several small servers. This restriction will not be lifted. It is not legal to remove this restriction, per the license.

The Engine (NGEngine) is a closed source library and is only licensed for use with this project. The Core (NGECore2) is licensed under the L-GPL License. By using NGECore2, you agree to the terms of both licenses.

Requirements for Building the Core:

Setting up the core

A video tutorial of this process can be viewed at http://www.projectswg.com/showthread.php?t=40304

  1. Once you have met the requirements, fork the project and then proceed to clone your copy of the repository to your computer.
  2. Import the project to Eclipse.
  3. Create a postgres DB and restore the nge.backup file. Depending on each update, you may or may not have to repeat this process. Once restored, create an account for yourself in the accounts table of your database, and update the connectionServers table with the appropriate IP address of your server, in the address field.
  4. Copy nge.cfg.example to nge.cfg, and add your DB credentials and name.
  5. Create a directory named "clientdata" inside your NGECore2 git repo.
  6. Open TRE Explorer and proceed open the sku0_client.toc in your SWG directory. Export the following directories to your clientdata directory:
  • abstract
  • appearance
  • creation
  • customization
  • datatables
  • footprint
  • interiorlayout
  • misc
  • object
  • quest
  • snapshot
  • string
  • terrain

Repeat the above extraction process with the sku1_client.toc, sku2_client.toc and sku3_client.toc files to avoid errors with kashyyyk.

You are now ready to run the core!

Contributing and Submitting patches

To contribute, commit your changes to your fork of the project and then submit a pull request.

Your changes will be reviewed by other developers. Once the changes are approved, your pull request will be merged into the main repository.

Please prefix all commits with Added, Changed, Removed or Fixed. If you don't have enough room for multiple changes, use the extended description. Try not to bundle multiple changes into one vague line (ie. "Changed various combat things"). Try to make all commit messages understandable by non-programmers.

About

The ProjectSWG Open Source Core

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

, '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

Repository files navigation

NGECore2

The ProjectSWG Open Source Project's aim is to create a server emulator for the sandbox MMO Star Wars Galaxies at its final publish before shutdown on 15/12/2011.

The Open Source Version of ProjectSWG is restricted to 30 minutes uptime and upto 5 connections to ensure that the community is not split between several small servers. This restriction will not be lifted. It is not legal to remove this restriction, per the license.

The Engine (NGEngine) is a closed source library and is only licensed for use with this project. The Core (NGECore2) is licensed under the L-GPL License. By using NGECore2, you agree to the terms of both licenses.

Requirements for Building the Core:

Setting up the core

A video tutorial of this process can be viewed at http://www.projectswg.com/showthread.php?t=40304

  1. Once you have met the requirements, fork the project and then proceed to clone your copy of the repository to your computer.
  2. Import the project to Eclipse.
  3. Create a postgres DB and restore the nge.backup file. Depending on each update, you may or may not have to repeat this process. Once restored, create an account for yourself in the accounts table of your database, and update the connectionServers table with the appropriate IP address of your server, in the address field.
  4. Copy nge.cfg.example to nge.cfg, and add your DB credentials and name.
  5. Create a directory named "clientdata" inside your NGECore2 git repo.
  6. Open TRE Explorer and proceed open the sku0_client.toc in your SWG directory. Export the following directories to your clientdata directory:
  • abstract
  • appearance
  • creation
  • customization
  • datatables
  • footprint
  • interiorlayout
  • misc
  • object
  • quest
  • snapshot
  • string
  • terrain

Repeat the above extraction process with the sku1_client.toc, sku2_client.toc and sku3_client.toc files to avoid errors with kashyyyk.

You are now ready to run the core!

Contributing and Submitting patches

To contribute, commit your changes to your fork of the project and then submit a pull request.

Your changes will be reviewed by other developers. Once the changes are approved, your pull request will be merged into the main repository.

Please prefix all commits with Added, Changed, Removed or Fixed. If you don't have enough room for multiple changes, use the extended description. Try not to bundle multiple changes into one vague line (ie. "Changed various combat things"). Try to make all commit messages understandable by non-programmers.

About

The ProjectSWG Open Source Core

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

, '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

Repository files navigation

NGECore2

The ProjectSWG Open Source Project's aim is to create a server emulator for the sandbox MMO Star Wars Galaxies at its final publish before shutdown on 15/12/2011.

The Open Source Version of ProjectSWG is restricted to 30 minutes uptime and upto 5 connections to ensure that the community is not split between several small servers. This restriction will not be lifted. It is not legal to remove this restriction, per the license.

The Engine (NGEngine) is a closed source library and is only licensed for use with this project. The Core (NGECore2) is licensed under the L-GPL License. By using NGECore2, you agree to the terms of both licenses.

Requirements for Building the Core:

Setting up the core

A video tutorial of this process can be viewed at http://www.projectswg.com/showthread.php?t=40304

  1. Once you have met the requirements, fork the project and then proceed to clone your copy of the repository to your computer.
  2. Import the project to Eclipse.
  3. Create a postgres DB and restore the nge.backup file. Depending on each update, you may or may not have to repeat this process. Once restored, create an account for yourself in the accounts table of your database, and update the connectionServers table with the appropriate IP address of your server, in the address field.
  4. Copy nge.cfg.example to nge.cfg, and add your DB credentials and name.
  5. Create a directory named "clientdata" inside your NGECore2 git repo.
  6. Open TRE Explorer and proceed open the sku0_client.toc in your SWG directory. Export the following directories to your clientdata directory:
  • abstract
  • appearance
  • creation
  • customization
  • datatables
  • footprint
  • interiorlayout
  • misc
  • object
  • quest
  • snapshot
  • string
  • terrain

Repeat the above extraction process with the sku1_client.toc, sku2_client.toc and sku3_client.toc files to avoid errors with kashyyyk.

You are now ready to run the core!

Contributing and Submitting patches

To contribute, commit your changes to your fork of the project and then submit a pull request.

Your changes will be reviewed by other developers. Once the changes are approved, your pull request will be merged into the main repository.

Please prefix all commits with Added, Changed, Removed or Fixed. If you don't have enough room for multiple changes, use the extended description. Try not to bundle multiple changes into one vague line (ie. "Changed various combat things"). Try to make all commit messages understandable by non-programmers.

About

The ProjectSWG Open Source Core

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

, '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

Repository files navigation

NGECore2

The ProjectSWG Open Source Project's aim is to create a server emulator for the sandbox MMO Star Wars Galaxies at its final publish before shutdown on 15/12/2011.

The Open Source Version of ProjectSWG is restricted to 30 minutes uptime and upto 5 connections to ensure that the community is not split between several small servers. This restriction will not be lifted. It is not legal to remove this restriction, per the license.

The Engine (NGEngine) is a closed source library and is only licensed for use with this project. The Core (NGECore2) is licensed under the L-GPL License. By using NGECore2, you agree to the terms of both licenses.

Requirements for Building the Core:

Setting up the core

A video tutorial of this process can be viewed at http://www.projectswg.com/showthread.php?t=40304

  1. Once you have met the requirements, fork the project and then proceed to clone your copy of the repository to your computer.
  2. Import the project to Eclipse.
  3. Create a postgres DB and restore the nge.backup file. Depending on each update, you may or may not have to repeat this process. Once restored, create an account for yourself in the accounts table of your database, and update the connectionServers table with the appropriate IP address of your server, in the address field.
  4. Copy nge.cfg.example to nge.cfg, and add your DB credentials and name.
  5. Create a directory named "clientdata" inside your NGECore2 git repo.
  6. Open TRE Explorer and proceed open the sku0_client.toc in your SWG directory. Export the following directories to your clientdata directory:
  • abstract
  • appearance
  • creation
  • customization
  • datatables
  • footprint
  • interiorlayout
  • misc
  • object
  • quest
  • snapshot
  • string
  • terrain

Repeat the above extraction process with the sku1_client.toc, sku2_client.toc and sku3_client.toc files to avoid errors with kashyyyk.

You are now ready to run the core!

Contributing and Submitting patches

To contribute, commit your changes to your fork of the project and then submit a pull request.

Your changes will be reviewed by other developers. Once the changes are approved, your pull request will be merged into the main repository.

Please prefix all commits with Added, Changed, Removed or Fixed. If you don't have enough room for multiple changes, use the extended description. Try not to bundle multiple changes into one vague line (ie. "Changed various combat things"). Try to make all commit messages understandable by non-programmers.

About

The ProjectSWG Open Source Core

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

, '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

Repository files navigation

NGECore2

The ProjectSWG Open Source Project's aim is to create a server emulator for the sandbox MMO Star Wars Galaxies at its final publish before shutdown on 15/12/2011.

The Open Source Version of ProjectSWG is restricted to 30 minutes uptime and upto 5 connections to ensure that the community is not split between several small servers. This restriction will not be lifted. It is not legal to remove this restriction, per the license.

The Engine (NGEngine) is a closed source library and is only licensed for use with this project. The Core (NGECore2) is licensed under the L-GPL License. By using NGECore2, you agree to the terms of both licenses.

Requirements for Building the Core:

Setting up the core

A video tutorial of this process can be viewed at http://www.projectswg.com/showthread.php?t=40304

  1. Once you have met the requirements, fork the project and then proceed to clone your copy of the repository to your computer.
  2. Import the project to Eclipse.
  3. Create a postgres DB and restore the nge.backup file. Depending on each update, you may or may not have to repeat this process. Once restored, create an account for yourself in the accounts table of your database, and update the connectionServers table with the appropriate IP address of your server, in the address field.
  4. Copy nge.cfg.example to nge.cfg, and add your DB credentials and name.
  5. Create a directory named "clientdata" inside your NGECore2 git repo.
  6. Open TRE Explorer and proceed open the sku0_client.toc in your SWG directory. Export the following directories to your clientdata directory:
  • abstract
  • appearance
  • creation
  • customization
  • datatables
  • footprint
  • interiorlayout
  • misc
  • object
  • quest
  • snapshot
  • string
  • terrain

Repeat the above extraction process with the sku1_client.toc, sku2_client.toc and sku3_client.toc files to avoid errors with kashyyyk.

You are now ready to run the core!

Contributing and Submitting patches

To contribute, commit your changes to your fork of the project and then submit a pull request.

Your changes will be reviewed by other developers. Once the changes are approved, your pull request will be merged into the main repository.

Please prefix all commits with Added, Changed, Removed or Fixed. If you don't have enough room for multiple changes, use the extended description. Try not to bundle multiple changes into one vague line (ie. "Changed various combat things"). Try to make all commit messages understandable by non-programmers.

About

The ProjectSWG Open Source Core

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors