Newgrounds removed flash
Moderator: trava90
Forum rules
Please always mention the name/domain of the website in question in your topic title.
Please one website per topic thread (to help keep things organized). While behavior on different sites might at first glance seem similar, they are not necessarily caused by the same.
Please try to include any relevant output from the Toolkit Error Console or the Developer Tools Web Console using the following procedure:
Please always mention the name/domain of the website in question in your topic title.
Please one website per topic thread (to help keep things organized). While behavior on different sites might at first glance seem similar, they are not necessarily caused by the same.
Please try to include any relevant output from the Toolkit Error Console or the Developer Tools Web Console using the following procedure:
- Clear any current output
- Navigate or refresh the page in question
- Copy and paste Errors or seemingly relevant Warnings into a single [ code ] block.
-
joshex
- Apollo supporter

- Posts: 34
- Joined: 2025-12-17, 00:31
Newgrounds removed flash
Newgrounds has replaced all swf flashes with an advertisement for newgroundsplayer. even changing your newgrounds site settings to "always use flash for swf content" it displays a custom element with a graphical custom error text "this file may not be compatible with your device" the only option being a play button which redirects to a newgrounds player advertisement saying this "file requires flash, flash is no longer supported in browsers, install newgrounds player"
sigh... I have reported it as a bug, once in it's own thread (got ignored):
https://www.newgrounds.com/bbs/topic/1560309/1#
and once in the official bug report thread on newgrounds (yet to see if they even so much as respond):
https://www.newgrounds.com/bbs/topic/15 ... _post_text
also searching for the swf in the page's source returns nothing. they completely removed the uploads.ungrounded.net links to the swf(s) from the pages.
sigh... I have reported it as a bug, once in it's own thread (got ignored):
https://www.newgrounds.com/bbs/topic/1560309/1#
and once in the official bug report thread on newgrounds (yet to see if they even so much as respond):
https://www.newgrounds.com/bbs/topic/15 ... _post_text
also searching for the swf in the page's source returns nothing. they completely removed the uploads.ungrounded.net links to the swf(s) from the pages.
-
Mæstro
- Board Warrior

- Posts: 1279
- Joined: 2019-08-13, 00:30
- Location: Casumia
Re: Newgrounds removed flash
I recall there being a filter, rather like the one I am trying to impose on Neopets Classic right now, to restore SWF on Newgrounds. I once used such a filter, but ended up deleting it while tinkering for Neopets Classic’s sake. 
Surely it can be recovered.
Surely it can be recovered.
‘Life is a fever dream Mæstro would enjoy.’
All posts 100% organic. Ash is the best letter.
What is being nice online?
Debian 10 ELTS / Official PM build
All posts 100% organic. Ash is the best letter.
What is being nice online?
Debian 10 ELTS / Official PM build
-
joshex
- Apollo supporter

- Posts: 34
- Joined: 2025-12-17, 00:31
Re: Newgrounds removed flash
I think this is new, as in this month. in fact it was working correctly in early july. so I'm not aware of any filters, also how would I apply them?
-
Mæstro
- Board Warrior

- Posts: 1279
- Joined: 2019-08-13, 00:30
- Location: Casumia
Re: Newgrounds removed flash
One applies these filters through an extension called Modify HTTP Response. How to create a proper one would be beyond my knowledge, but I know there are others here who are more competent and have even helped me.
‘Life is a fever dream Mæstro would enjoy.’
All posts 100% organic. Ash is the best letter.
What is being nice online?
Debian 10 ELTS / Official PM build
All posts 100% organic. Ash is the best letter.
What is being nice online?
Debian 10 ELTS / Official PM build
-
joshex
- Apollo supporter

- Posts: 34
- Joined: 2025-12-17, 00:31
Re: Newgrounds removed flash
ah ok, I have that addon. I was using it for devtalk.blender.org. having one for newgrounds might be a good thing if the NG devs don't realize their mistake. I realize they are trying to push thier own player, but if it's not as functional as flashplayer or fails in certain functionality.. then they shouldn't push it as it might break games. oh well, I'll see if I can even get a response out of them and maybe bring up this point. otherwise a filter would be much appreciated in the meantime.Mæstro wrote: ↑2026-08-03, 03:29One applies these filters through an extension called Modify HTTP Response. How to create a proper one would be beyond my knowledge, but I know there are others here who are more competent and have even helped me.
-
Mæstro
- Board Warrior

- Posts: 1279
- Joined: 2019-08-13, 00:30
- Location: Casumia
Re: Newgrounds removed flash
I should caution you against that. When I brought up difficulties I encountered as a native Flash user to a site administrator, I found the cure worse than the disease. Most developers today, alas, treat Ruffle as the universal standard for how to run SWF, and they are more likely, in my experience, to act to make Flash harder to use.
‘Life is a fever dream Mæstro would enjoy.’
All posts 100% organic. Ash is the best letter.
What is being nice online?
Debian 10 ELTS / Official PM build
All posts 100% organic. Ash is the best letter.
What is being nice online?
Debian 10 ELTS / Official PM build
-
adoxa
- Astronaut

- Posts: 705
- Joined: 2019-03-16, 13:26
- Location: Qld, Aus.
Re: Newgrounds removed flash
Went with a Greasemonkey script.
Code: Select all
// ==UserScript==
// @name Newgrounds flash
// @namespace adoxa
// @description Turn newgroundsplayer links into swf links.
// @include https://www.newgrounds.com/portal/view/*
// @version 1
// @grant none
// ==/UserScript==
!function() {
document.querySelectorAll("a").forEach(a => {
if (a.href.startsWith("newgroundsplayer:")) {
let id = a.href.substr(17);
fetch("/portal/swf-player-meta/" + id)
.then(r => r.json()).then(r => {
document.getElementById("embed_sizer").innerHTML =
`<embed type="application/x-shockwave-flash"
src="${r.swf}" width="${r.width}" height="${r.height}"/>`;
})
}
})
}()
-
joshex
- Apollo supporter

- Posts: 34
- Joined: 2025-12-17, 00:31
Re: Newgrounds removed flash
nicely written script, I forget what tag they used to use for embedding, I know it wasn't an <object> tag they also set it up in a specific way to interface with their trophies system, guess I'll have to check archive.org and see if any flash pages are archived and what tags they used. to perfect the script.adoxa wrote: ↑2026-08-03, 07:18Went with a Greasemonkey script.
Code: Select all
// ==UserScript== // @name Newgrounds flash // @namespace adoxa // @description Turn newgroundsplayer links into swf links. // @include https://www.newgrounds.com/portal/view/* // @version 1 // @grant none // ==/UserScript== !function() { document.querySelectorAll("a").forEach(a => { if (a.href.startsWith("newgroundsplayer:")) { let id = a.href.substr(17); fetch("/portal/swf-player-meta/" + id) .then(r => r.json()).then(r => { document.getElementById("embed_sizer").innerHTML = `<embed type="application/x-shockwave-flash" src="${r.swf}" width="${r.width}" height="${r.height}"/>`; }) } }) }()
then I'll have to get a greasemonkey addon..
Code: Select all
<script type="text/javascript">
// <![CDATA[
var fw = new FlashWriter("https://web.archive.org/web/20110603012411/http://uploads.ungrounded.net/508000/508088_reboknik3.swf", "100%", "100%");
fw.SetScriptAccess("never");
fw.SetFullScreen(true);
fw.SetFullScreenOnSelection(true);
var fw_params = [{param:"NewgroundsAPI_PublisherID", value:"1"},{param:"NewgroundsAPI_SandboxID", value:"4de83784de88b"}];
var save_file_id = null;
var save_group_id = null;
function makeFlashParams() {
var p = "";
for(var i=0; i<fw_params.length; i++) {
if (i > 0) {
p+="&";
}
p+=fw_params[i].param+"="+fw_params[i].value;
}
if (save_file_id && save_group_id) {
if (p !== "") {
p+="&";
}
p+="NewgroundsAPI_SaveFileID="+save_file_id
p+="&NewgroundsAPI_SaveGroupID="+save_group_id
// reset the file id to what it was when the page was loaded
save_file_id = null;
}
return p;
}
function getEmbedHTML() {
fw.SetParams(
makeFlashParams()
);
fw.SetFullScreen(true);
return fw.ToString();
}
var lightbox = null;
var movie_open = false;
function popMovie(groupid,saveid)
{
extra = "sandboxid=4de83784de88b";
if (saveid && groupid) {
extra = extra+"&group_id="+groupid+"&save_id="+saveid;
}
submission_controller.PopViewer(272, 684, extra);
$('flash_embed').innerHTML = $('popup_blockade').innerHTML;
movie_open = false;
return(false);
}
// create the lightbox;
function setLightbox() {
if (!lightbox) {
var body = document.getElementsByTagName("body").item(0);
lightbox = document.createElement("div");
lightbox.setAttribute("id", "lightbox");
lightbox.setAttribute("class", "black_overlay");
lightbox.setAttribute("className", "black_overlay");
body.appendChild(lightbox);
$('lightbox').style.height = getDocumentHeight()+"px";
$('lightbox').style.display = "none";
}
}
// resize vars
var page_width = 942;
var interval;
var x_speed = 0;
var y_speed = 0;
// set the author-specified movie size
var full_width = 942;
var full_height = 471;
// set the in-line movie sizes
var normal_width = 200;
var normal_height = 100;
// set the resize defaults
var current_width = normal_width;
var current_height = normal_height;
var use_width = normal_width;
var use_height = normal_height;
// transition speed stuff
var duration = 0.5;
var framerate = 50;
var frames = (duration*1000)/framerate;
// lightbox vars
var lights = true;
// lightbox fade in/out effects
function FadeEffect(element){
new Effect.Fade(element, {duration:0.5});
}
function ShowEffect(element){
new Effect.Appear(element, {duration:0.5, from:0.0, to:0.8});
}
function dimLights(lt) {
lights = lt;
if (lights) {
clearSwappableElements();
$('flashhover_container').className = "flashhover_container poddimmed";
setLightbox();
ShowEffect('lightbox');
lights = false;
} else {
fillSwappableElements();
$('flashhover_container').className = "flashhover_container";
setLightbox();
FadeEffect('lightbox');
lights = true;
}
}
// resize functions
function fullSize() {
use_width = full_width;
use_height = full_height;
startScale();
}
function normalSize() {
use_width = normal_width;
use_height = normal_height;
startScale();
}
// figures out if we need to shrink or grow
function startScale() {
clearInterval(interval);
if (current_width > use_width) {
scaleDown();
} else if (current_width < use_width) {
scaleUp();
}
}
function scaleUp() {
x_speed = Math.round( (use_width-current_width) /frames );
y_speed = Math.round( (use_height-current_height) /frames );
interval = setInterval("growFlash()",framerate);
}
function scaleDown() {
x_speed = Math.round( (current_width-use_width) /frames );
y_speed = Math.round( (current_height-use_height) /frames );
interval = setInterval("shrinkFlash()",framerate);
}
// functions for the actual resizing
function growFlash() {
current_width+=x_speed;
current_height+=y_speed;
if (current_width >= use_width || current_height >= use_height) {
current_width = use_width;
current_height = use_height;
clearInterval(interval);
}
setSizing();
}
function shrinkFlash() {
current_width-=x_speed;
current_height-=y_speed;
if (current_width <= use_width || current_height <= use_height) {
current_width = use_width;
current_height = use_height;
clearInterval(interval);
}
setSizing();
}
// Function for scaling the in-line sizer div
function setSizing() {
$('flash_embed').style.width = current_width+"px";
$('flash_embed').style.height = current_height+"px";
$('flash_embed_sizer').style.height = $('flashhover_container').offsetHeight+"px";
$('flash_embed_sizer').style.width = $('flashhover_container').offsetWidth+"px";
}
setSizing();
$('flash_embed').innerHTML = getEmbedHTML();
movie_open = true;
function closeMovie() {
dimLights(false);
normalSize();
$('flash_embed').innerHTML = $('general_blockade').innerHTML;
movie_open = false;
}
function unblock() {
$('flash_embed').innerHTML = getEmbedHTML();
movie_open = true;
}
function showHover(txt) {
if (!txt || txt == 'null') {
$('button_hover_text').innerHTML = "";
checkhover = false;
} else {
$('button_hover_text').innerHTML = txt;
checkhover = true;
}
}
// functions for getting the dimensions iof the actual document (for sizing the lightbox)
function getDocumentHeight() {
return getDocumentDimensions().height;
}
function getDocumentDimensions() {
if( window.innerHeight && window.scrollMaxY ) // Firefox
{
pageWidth = window.innerWidth + window.scrollMaxX;
pageHeight = window.innerHeight + window.scrollMaxY;
}
else if( document.body.scrollHeight > document.body.offsetHeight ) // all but Explorer Mac
{
pageWidth = document.body.scrollWidth;
pageHeight = document.body.scrollHeight;
}
else // works in Explorer 6 Strict, Mozilla (not FF) and Safari
{
pageWidth = document.body.offsetWidth + document.body.offsetLeft;
pageHeight = document.body.offsetHeight + document.body.offsetTop;
}
return {height:pageHeight, width:pageWidth};
}
var last_shake = 0;
function shakeScreen() {
var date = new Date();
var time = date.getTime();
if (time > last_shake + 2000) {
last_shake = time;
} else {
return;
}
if (movie_open) {
Effect.Shake('the_flash_embed',{duration:0.25, distance:15});
Effect.Shake('the_flash_embed',{duration:0.3, distance:5});
} else {
var pop = submission_controller.GetPopWindow();
if (pop) {
pop.shakeScreen();
}
}
}
// ]]>
</script>the url is: https://web.archive.org/web/20110603012 ... iew/508088
original url: https://www.newgrounds.com/portal/view/508088
here this is an example with a game with trophies, they use some php and javascript: (I did not look through it too heavily, some may be unnecessary for hosting flash games, I noticed some is to check and embed unity games which this is not.)
Code: Select all
<script src="//web.archive.org/web/20190623223227js_/https://js.ngfiles.com/embed/swfobject.js"></script>
<script src="//web.archive.org/web/20190623223227js_/https://js.ngfiles.com/embed/embed_controller.js?cache_at=123456"></script>
<script type="text/javascript">
// <![CDATA[
var embed_controller = new embedController([{"url":"https:\/\/web.archive.org\/web\/20190623223227\/https:\/\/uploads.ungrounded.net\/733000\/733502_stickertycoon-main1075.swf?f1561278369","is_published":true,"portal_id":1,"file_id":0,"project_id":831743,"item_id":733502,"description":"Flash Game","width":550,"height":400,"filesize":4172805,"params":{},"portal_item_requirements":[1],"html":"<div id=\"swfobject_embed\" style=\"width:100%; height:400px; font-family:Arial,Helvetica,sans; font-size:10px\">\n\t<table id=\"get_flash\" style=\"background-color:#DDD; width:100%; height:400px; display:none\">\n\t\t<tr><td valign=\"middle\" align=\"center\">\n\t\t\t<div style=\"width:400px; padding:12px; background-color:#FFF\">\n\t\t\t\t<div style=\"background-color:#000; text-align:center; height:38px; width:38px; color:#FFF; float:left; font-weight:strong; font-size:32px; margin:0px 8px 0px 0px; padding:0px\">!<\/div>\n\t\t\t\t<p style=\"color:#000; margin:0px; padding:0px\">This content uses Adobe Flash Player.<br\/>\n\t\t\t\tClick the button below to get the latest version!<\/p>\n\t\t\t<\/div>\n\t\t\t<div style=\"width:400px; padding:12px; background-color:#FFF\">\n\t\t\t\t<a href=\"http:\/\/www.adobe.com\/go\/getflashplayer\" target=\"_blank\"><img src=\"\/\/img.ngfiles.com\/third-party\/160x41_get_flashplayer.gif\"><\/a>\n\t\t\t<\/div>\n\t\t<\/td><\/tr>\n\t<\/table>\n<\/div>\n",callback:function(){var params = { wmode:'direct', allowscriptaccess:'never', allowfullscreen:'true', allowfullscreeninteractive:'true' }; swfobject.ua.pv = [100, 0, 0]; var has_flash_player = swfobject.hasFlashPlayerVersion("9.0.0"); if (has_flash_player) { swfobject.embedSWF("https://web.archive.org/web/20190623223227/https://uploads.ungrounded.net/733000/733502_stickertycoon-main1075.swf?1561275459", "swfobject_embed", "550", "400", "9.0.0", null, {"NewgroundsAPI_PublisherID":1,"NewgroundsAPI_SandboxID":"5d0ffdfc26651","NewgroundsAPI_SessionID":"","NewgroundsAPI_UserName":"<deleted>","NewgroundsAPI_UserID":0,"ng_username":"<deleted>"},params); } else { var get_flash = document.getElementById('get_flash'); if (get_flash) get_flash.style.display = ""; } if (typeof(embed_controller) != 'undefined') embed_controller.reportSuccess(has_flash_player); }}],null,false);
// ]]>
</script>
<div class="column" id="content_area" itemscope itemtype="https://schema.org/WebApplication">
<meta itemprop="datePublished" content="2019-06-22T15:57:19-0400">
<meta itemprop="url" content="https://web.archive.org/web/20190623223227/https://www.newgrounds.com/portal/view/733502">
<meta itemprop="thumbnailUrl" content="https://web.archive.org/web/20190623223227im_/https://picon.ngfiles.com/733000/flash_733502_largest_crop.jpg?f1561233440">
<meta itemprop="description" content="Are you crazy enough to hit it big selling stickers?">
<meta itemprop="applicationCategory" content="Game">
<script>
// <![CDATA[
embed_controller.hasUnityPlugin(function(has) {
var div_class = embed_controller.getWidth() > 550 || !has ? "maincontent-wide":"maincontent";
jQuery('#content_area').addClass(div_class);
jQuery('#content_area').show();
});
// ]]>
</script>
<div class="pod embed">
<div class="pod-head" id="embed_header">
<h2 class="rated-m" itemprop="name">Sticker Tycoon</h2>
<div itemprop="aggregateRating" itemscope itemtype="https://schema.org/AggregateRating">
<meta itemprop="worstRating" content="0">
<meta itemprop="bestRating" content="10">
<meta itemprop="ratingCount" content="85">
<meta itemprop="ratingValue" content="6.7893283412">
<span>
<a class="icon-share" href="//web.archive.org/web/20190623223227/https://www.newgrounds.com/content/share/733502/2" id="share_content" rel="nofollow" title="Share">Share</a>
</span>
<script>
ngutils.sharebox.register(jQuery('#share_content'));
</script>
<span style="display:none;">
<a class="icon-min" href="#" title="Collapse" rel="nofollow" id="collapse_item">Collapse</a>
</span>
<script type="text/javascript">
(function($) {
$(document).ready(function() {
var $content_pod = $('#embed_podcontent');
var $sizer_pod = $('#embed_sizer');
var html = null;
$('#collapse_item').click(function() {
var $el = $(this);
if ($content_pod.is(':visible')) {
$content_pod.hide();
html = $sizer_pod[0].innerHTML;
$sizer_pod.empty();
$el.removeClass().addClass('icon-max');
$el.attr('title', 'Expand');
} else {
$content_pod.show();
$sizer_pod[0].innerHTML = html;
$el.removeClass().addClass('icon-min');
$el.attr('title', 'Collapse');
}
});
});
})(jQuery);
</script>
</div>
</div>
<div class="pod-body breakout" id="embed_podcontent">
<div id="supporter_promo" style="text-align:center; display:none; height:18px; background-color:#121F2F; padding:4px; font-size:1.3em">
<p>
<strong>Tired of waiting?</strong>
<a href="https://web.archive.org/web/20190623223227/https://www.newgrounds.com/supporter" target="supporter">Click here to disable ads!</a>
</p>
</div>
<div id="embed_wrapper">
<div id="embed_sizer">
</div>
</div>
<script>
// <![CDATA[
(function($) {
var $wrapper = $('#embed_wrapper');
var $sizer = $('#embed_sizer');
var $pod = $('#embed_podcontent');
var $content_area = $('#content_area');
function updateEmbedSize(width, height, rescale) {
var podwidth = $pod.width();
if (rescale) {
var scale = podwidth / width;
width = podwidth;
height = height * scale;
} else {
var expand = width - podwidth;
if (expand > 0) {
var ca_w = $content_area.width();
$content_area.width(ca_w + expand);
$content_area.css('margin', '0px -'+(expand/2)+'px');
}
}
$wrapper.css('width',(podwidth/2)+'px');
$wrapper.css('margin-left', '50%');
$wrapper.css('height',(height)+'px');
$sizer.css('height',(height)+'px');
$sizer.css('width',(width)+'px');
$sizer.css('margin-left','-'+(Math.round(width/2))+'px');
}
var width = embed_controller.getWidth(910);
var height = embed_controller.getHeight(180);
updateEmbedSize(width, height, false);
})(jQuery);
// ]]>
</script> https://web.archive.org/web/20190623223 ... iew/733502