Sometimes when I search for assets using the Roll20 Editor search, I get results that seem to prioritize something else over any keywords I may have entered. Specifically, the results are also so heavily skewed in favor of some packs over others that the results of just one single pack may be displayed instead of results that are potentially more relevant. As such, I believe the search algorithm is not functioning as intended. For example: When I go to the roll20 editor and search for "tree" under "Maps, Tiles, Textures," I get 100/100 search results *exclusively* from Gabriel Pickard's "Vile Tiles: Forest Mapper 1" Pack. Moreover, large chunks of the search results are not even tagged "tree"-- such as the boulders, caves, and cliffs that show up in the result. There are some bushes in the search results that are, in fact, tagged "tree," but none of the trees in the pack show up in the search result either, most likely because they are alphabetically after the boulders, bushes, caves, and cliffs in the pack and thus are simply truncated from the search results. Likewise, boulders show up in the search result before bushes do, even though the bushes are tagged "tree," while the boulders are not. PLEASE NOTE: Reproducing this might not work properly if you already own the "Vile Maps: Forest Mapper 1" pack. Also, the same thing occurs when searching for "Everything" as when searching for "Maps, Tiles, Textures." I have noticed similar cases with other common search terms as well (e.g., poison, cliff, water), in which the results are heavily dominated by just a few packs, with results of varying relevance within those packs (though results tend to be more relevant than not). The "tree" search, however, is most notable because of the fact that it only displays items from a single pack, many of which don't have tags that match the keyword. Most importantly though, the search function claims to search by keyword, but it is clearly weighting something (potentially popularity) higher than keyword in some searches. Testing was performed on several machines and browsers, all of which produced the same results. They are as follows: Setup 1 Chrome 76 Browser Addons/Extensions: all disabled ChromeOS Setup 2 (console log included) Chrome 76 Browser Addons/Extensions: all disabled Windows 7 Setup 3 Firefox Quantum 63.0.3 (64-bit) Browser Addons/Extensions: none Windows 7 Console Log app.roll20.net/:12 Refused to execute inline script because it violates the following Content Security Policy directive: "script-src 'self' 'unsafe-eval' https://*.googlesyndication.com https://*.doubleclick.net <a href="https://partner.googleadservices.com" rel="nofollow">https://partner.googleadservices.com</a> <a href="https://www.googletagservices.com" rel="nofollow">https://www.googletagservices.com</a> <a href="https://ssl.google-analytics.com" rel="nofollow">https://ssl.google-analytics.com</a> <a href="https://www.google-analytics.com" rel="nofollow">https://www.google-analytics.com</a> <a href="https://ajax.googleapis.com" rel="nofollow">https://ajax.googleapis.com</a> <a href="http://ajax.googleapis.com" rel="nofollow">http://ajax.googleapis.com</a> <a href="https://d3clqjduf2gvxg.cloudfront.net" rel="nofollow">https://d3clqjduf2gvxg.cloudfront.net</a> <a href="https://cdn.firebase.com" rel="nofollow">https://cdn.firebase.com</a> https://*.firebaseio.com https://*.tokbox.com https://*.opentok.com <a href="http://static.opentok.com" rel="nofollow">http://static.opentok.com</a> <a href="http://www.google-analytics.com" rel="nofollow">http://www.google-analytics.com</a> <a href="http://cdn.crowdin.com" rel="nofollow">http://cdn.crowdin.com</a> <a href="https://crowdin.com" rel="nofollow">https://crowdin.com</a> <a href="http://stun.l.google.com" rel="nofollow">http://stun.l.google.com</a> ". Either the 'unsafe-inline' keyword, a hash ('sha256-YqRnjBbbIf0aS2bv7PXNuhC3k1sJ6sFmO1BhiTY9WZ4='), or a nonce ('nonce-...') is required to enable inline execution. app.roll20.net/:13 Refused to execute inline script because it violates the following Content Security Policy directive: "script-src 'self' 'unsafe-eval' https://*.googlesyndication.com https://*.doubleclick.net <a href="https://partner.googleadservices.com" rel="nofollow">https://partner.googleadservices.com</a> <a href="https://www.googletagservices.com" rel="nofollow">https://www.googletagservices.com</a> <a href="https://ssl.google-analytics.com" rel="nofollow">https://ssl.google-analytics.com</a> <a href="https://www.google-analytics.com" rel="nofollow">https://www.google-analytics.com</a> <a href="https://ajax.googleapis.com" rel="nofollow">https://ajax.googleapis.com</a> <a href="http://ajax.googleapis.com" rel="nofollow">http://ajax.googleapis.com</a> <a href="https://d3clqjduf2gvxg.cloudfront.net" rel="nofollow">https://d3clqjduf2gvxg.cloudfront.net</a> <a href="https://cdn.firebase.com" rel="nofollow">https://cdn.firebase.com</a> https://*.firebaseio.com https://*.tokbox.com https://*.opentok.com <a href="http://static.opentok.com" rel="nofollow">http://static.opentok.com</a> <a href="http://www.google-analytics.com" rel="nofollow">http://www.google-analytics.com</a> <a href="http://cdn.crowdin.com" rel="nofollow">http://cdn.crowdin.com</a> <a href="https://crowdin.com" rel="nofollow">https://crowdin.com</a> <a href="http://stun.l.google.com" rel="nofollow">http://stun.l.google.com</a>". Either the 'unsafe-inline' keyword, a hash ('sha256-JeWbh0DatVbnZhQNBSXTdn1mQkTkdb72YVLCn8c2k88='), or a nonce ('nonce-...') is required to enable inline execution.
jquery.migrate.js:20 JQMIGRATE: Logging is active
app.roll20.net/:4530 Refused to execute inline script because it violates the following Content Security Policy directive: "script-src 'self' 'unsafe-eval' https://*.googlesyndication.com https://*.doubleclick.net <a href="https://partner.googleadservices.com" rel="nofollow">https://partner.googleadservices.com</a> <a href="https://www.googletagservices.com" rel="nofollow">https://www.googletagservices.com</a> <a href="https://ssl.google-analytics.com" rel="nofollow">https://ssl.google-analytics.com</a> <a href="https://www.google-analytics.com" rel="nofollow">https://www.google-analytics.com</a> <a href="https://ajax.googleapis.com" rel="nofollow">https://ajax.googleapis.com</a> <a href="http://ajax.googleapis.com" rel="nofollow">http://ajax.googleapis.com</a> <a href="https://d3clqjduf2gvxg.cloudfront.net" rel="nofollow">https://d3clqjduf2gvxg.cloudfront.net</a> <a href="https://cdn.firebase.com" rel="nofollow">https://cdn.firebase.com</a> https://*.firebaseio.com https://*.tokbox.com https://*.opentok.com <a href="http://static.opentok.com" rel="nofollow">http://static.opentok.com</a> <a href="http://www.google-analytics.com" rel="nofollow">http://www.google-analytics.com</a> <a href="http://cdn.crowdin.com" rel="nofollow">http://cdn.crowdin.com</a> <a href="https://crowdin.com" rel="nofollow">https://crowdin.com</a> <a href="http://stun.l.google.com" rel="nofollow">http://stun.l.google.com</a>". Either the 'unsafe-inline' keyword, a hash ('sha256-vileAyXucIHIT+3pbOzFP62jSSQqBYQ/DZ/WZAa5v4Y='), or a nonce ('nonce-...') is required to enable inline execution.
app.js?1566922725:541 70
app.js?1566922725:543 TOUCH SUPPORTED: false
app.js?1566922725:543 USING WEBGL ACCELERATION...
app.js?1566922725:543 WEBGL STARTUP SUCCESS
app.js?1566922725:536 select
app.js?1566922725:536 Switch mode to select
app.js?1566922725:557 Initializing new dice engine with randomness...
app.js?1566922725:557 Using random entropy
app.js?1566922725:563 window resize
app.js?1566922725:543 Final set zoom!
app.js?1566922725:542 UPDATE GL SIZE!
app.js?1566922725:543 Final set zoom!
tutorial_tips.js:7 tuts loaded
app.js?1566922725:551 Final page load.
app.js?1566922725:563 Refresh jukebox List!
app.js?1566922725:549 Auth'ed.
app.js?1566922725:549 Go post auth!
app.js?1566922725:549 initial setup
app.js?1566922725:547 T.i {attributes: {…}, _escapedAttributes: {…}, cid: "c0", changed: {…}, _silent: {…}, …}
app.js?1566922725:555 refershing page listings!
app.js?1566922725:549 Got players value...
app.js?1566922725:550 joining game...
app.js?1566922725:547 Full load page!
app.js?1566922725:549 We have 1 pages
app.js?1566922725:548 Global Volume: 100=1
app.js?1566922725:550 Deferred finish joining...
app.js?1566922725:541 Firebase Online
app.js?1566922725:549 handle page changes
app.js?1566922725:549 false
app.js?1566922725:555 refershing page listings!
app.js?1566922725:550 init active page!
app.js?1566922725:547 activate page!
app.js?1566922725:547 FULLY ACTIVATE VIEWS FOR PAGE.
app.js?1566922725:547 Graphics: 0
app.js?1566922725:547 Paths: 0
app.js?1566922725:547 Reorder by ZORDER
app.js?1566922725:551 Scan for new plays!
app.js?1566922725:555 refershing page listings!
app.js?1566922725:570 DOMException
t.errorLog @ app.js?1566922725:570
(anonymous) @ app.js?1566922725:571
(anonymous) @ app.js?1566922725:328
o.raiseReject @ app.js?1566922725:328
o.raiseRejects @ app.js?1566922725:328
o.reject @ app.js?1566922725:328
(anonymous) @ app.js?1566922725:328
o.raiseReject @ app.js?1566922725:328
o.raiseRejects @ app.js?1566922725:328
o.reject @ app.js?1566922725:328
(anonymous) @ app.js?1566922725:571
(anonymous) @ app.js?1566922725:328
o.raiseReject @ app.js?1566922725:328
o.raiseRejects @ app.js?1566922725:328
o.reject @ app.js?1566922725:328
(anonymous) @ app.js?1566922725:328
o.raiseReject @ app.js?1566922725:328
o.raiseRejects @ app.js?1566922725:328
o.reject @ app.js?1566922725:328
(anonymous) @ app.js?1566922725:331
(anonymous) @ app.js?1566922725:328
o.raiseReject @ app.js?1566922725:328
o.raiseRejects @ app.js?1566922725:328
o.reject @ app.js?1566922725:328
(anonymous) @ app.js?1566922725:338
(anonymous) @ app.js?1566922725:328
o.raiseReject @ app.js?1566922725:328
o.raiseRejects @ app.js?1566922725:328
o.reject @ app.js?1566922725:328
(anonymous) @ app.js?1566922725:339
(anonymous) @ app.js?1566922725:328
o.raiseReject @ app.js?1566922725:328
o.raiseRejects @ app.js?1566922725:328
o.reject @ app.js?1566922725:328
d @ app.js?1566922725:339
Promise.catch (async)
__webRtcLocalMediaInitialized.window.navigator.navigator.mediaDevices.navigator.mediaDevices.getUserMedia.navigator.fmGetUserMedia @ app.js?1566922725:339
r.doGetUserMedia @ app.js?1566922725:339
r.doGetUserMedia @ app.js?1566922725:339
r.doStartInternal @ app.js?1566922725:339
(anonymous) @ app.js?1566922725:339
(anonymous) @ app.js?1566922725:328
setTimeout (async)
e.dispatch @ app.js?1566922725:328
r.doStart @ app.js?1566922725:339
o.startInternal @ app.js?1566922725:338
o.start @ app.js?1566922725:338
i.start @ app.js?1566922725:331
(anonymous) @ app.js?1566922725:571
Promise.then (async)
(anonymous) @ app.js?1566922725:571
(anonymous) @ app.js?1566922725:328
o.raiseResolve @ app.js?1566922725:328
o.process @ app.js?1566922725:328
i.then @ app.js?1566922725:328
t.startLocalMedia @ app.js?1566922725:571
(anonymous) @ app.js?1566922725:571
c @ firebase.2.4.0.js:240
(anonymous) @ firebase.2.4.0.js:201
gc @ firebase.2.4.0.js:52
cc @ firebase.2.4.0.js:30
dc @ firebase.2.4.0.js:29
h.Kb @ firebase.2.4.0.js:220
h.Ld @ firebase.2.4.0.js:188
Eh.Ld @ firebase.2.4.0.js:178
(anonymous) @ firebase.2.4.0.js:176
yh @ firebase.2.4.0.js:170
La.onmessage @ firebase.2.4.0.js:169
Show 5 more frames
app.js?1566922725:563 Refresh jukebox List!
Mixed Content: The page at '<URL>' was loaded over HTTPS, but requested an insecure image '<URL>'. This content should also be served over HTTPS.
Mixed Content: The page at '<URL>' was loaded over HTTPS, but requested an insecure image '<URL>'. This content should also be served over HTTPS.
Mixed Content: The page at '<URL>' was loaded over HTTPS, but requested an insecure image '<URL>'. This content should also be served over HTTPS.
Mixed Content: The page at '<URL>' was loaded over HTTPS, but requested an insecure image '<URL>'. This content should also be served over HTTPS.
Mixed Content: The page at '<URL>' was loaded over HTTPS, but requested an insecure image '<URL>'. This content should also be served over HTTPS.
Mixed Content: The page at '<URL>' was loaded over HTTPS, but requested an insecure image '<URL>'. This content should also be served over HTTPS.
Mixed Content: The page at '<URL>' was loaded over HTTPS, but requested an insecure image '<URL>'. This content should also be served over HTTPS.
Mixed Content: The page at '<URL>' was loaded over HTTPS, but requested an insecure image '<URL>'. This content should also be served over HTTPS.
Mixed Content: The page at '<URL>' was loaded over HTTPS, but requested an insecure image '<URL>'. This content should also be served over HTTPS.
Mixed Content: The page at '<URL>' was loaded over HTTPS, but requested an insecure image '<URL>'. This content should also be served over HTTPS.
Mixed Content: The page at '<URL>' was loaded over HTTPS, but requested an insecure image '<URL>'. This content should also be served over HTTPS.
Mixed Content: The page at '<URL>' was loaded over HTTPS, but requested an insecure image '<URL>'. This content should also be served over HTTPS.
Mixed Content: The page at '<URL>' was loaded over HTTPS, but requested an insecure image '<URL>'. This content should also be served over HTTPS.
Mixed Content: The page at '<URL>' was loaded over HTTPS, but requested an insecure image '<URL>'. This content should also be served over HTTPS.
Mixed Content: The page at '<URL>' was loaded over HTTPS, but requested an insecure image '<URL>'. This content should also be served over HTTPS.
Mixed Content: The page at '<URL>' was loaded over HTTPS, but requested an insecure image '<URL>'. This content should also be served over HTTPS.
Mixed Content: The page at '<URL>' was loaded over HTTPS, but requested an insecure image '<URL>'. This content should also be served over HTTPS.
Mixed Content: The page at '<URL>' was loaded over HTTPS, but requested an insecure image '<URL>'. This content should also be served over HTTPS.
Mixed Content: The page at '<URL>' was loaded over HTTPS, but requested an insecure image '<URL>'. This content should also be served over HTTPS.
Mixed Content: The page at '<URL>' was loaded over HTTPS, but requested an insecure image '<URL>'. This content should also be served over HTTPS.
Mixed Content: The page at '<URL>' was loaded over HTTPS, but requested an insecure image '<URL>'. This content should also be served over HTTPS.
Mixed Content: The page at '<URL>' was loaded over HTTPS, but requested an insecure image '<URL>'. This content should also be served over HTTPS.
images:1 GET <a href="http://t1.gstatic.com/images?q=tbn:ANd9GcR2Mm9KHEmQ03UxR2UhkoLf6K_SeFis0CqGO1DDCCKFQapA3Ha1YJhtl_Kz" rel="nofollow">http://t1.gstatic.com/images?q=tbn:ANd9GcR2Mm9KHEmQ03UxR2UhkoLf6K_SeFis0CqGO1DDCCKFQapA3Ha1YJhtl_Kz</a> 404 (Not Found)
Image (async)
buildFragment @ jquery-1.9.1.js:6469
domManip @ jquery-1.9.1.js:6129
append @ jquery-1.9.1.js:5949
callback @ app.js?1566922725:569
a @ base.js?1566922720:20
fire @ jquery-1.9.1.js:1037
fireWith @ jquery-1.9.1.js:1148
done @ jquery-1.9.1.js:8074
callback @ jquery-1.9.1.js:8598
XMLHttpRequest.send (async)
send @ jquery-1.9.1.js:8526
ajax @ jquery-1.9.1.js:7978
jQuery.<computed> @ jquery-1.9.1.js:7614
s @ base.js?1566922720:20
(anonymous) @ base.js?1566922720:20
each @ jquery-1.9.1.js:648
each @ jquery-1.9.1.js:270
t.fn.infinitescroll @ base.js?1566922720:20
(anonymous) @ app.js?1566922725:569
fire @ jquery-1.9.1.js:1037
fireWith @ jquery-1.9.1.js:1148
done @ jquery-1.9.1.js:8074
callback @ jquery-1.9.1.js:8598
XMLHttpRequest.send (async)
send @ jquery-1.9.1.js:8526
ajax @ jquery-1.9.1.js:7978
jQuery.<computed> @ jquery-1.9.1.js:7614
h @ app.js?1566922725:569
r @ base.js?1566922720:6
setTimeout (async)
(anonymous) @ base.js?1566922720:6
(anonymous) @ app.js?1566922725:568
dispatch @ jquery-1.9.1.js:3074
elemData.handle @ jquery-1.9.1.js:2750
images:1 GET <a href="http://t1.gstatic.com/images?q=tbn:ANd9GcSxQTtvDk_6N3FKOg4D7tGf368UmnrBFv-r1rpKT1KgG18bpjS-_UorueWr" rel="nofollow">http://t1.gstatic.com/images?q=tbn:ANd9GcSxQTtvDk_6N3FKOg4D7tGf368UmnrBFv-r1rpKT1KgG18bpjS-_UorueWr</a> 404 (Not Found)
Image (async)
buildFragment @ jquery-1.9.1.js:6469
domManip @ jquery-1.9.1.js:6129
append @ jquery-1.9.1.js:5949
callback @ app.js?1566922725:569
a @ base.js?1566922720:20
fire @ jquery-1.9.1.js:1037
fireWith @ jquery-1.9.1.js:1148
done @ jquery-1.9.1.js:8074
callback @ jquery-1.9.1.js:8598
XMLHttpRequest.send (async)
send @ jquery-1.9.1.js:8526
ajax @ jquery-1.9.1.js:7978
jQuery.<computed> @ jquery-1.9.1.js:7614
s @ base.js?1566922720:20
(anonymous) @ base.js?1566922720:20
each @ jquery-1.9.1.js:648
each @ jquery-1.9.1.js:270
t.fn.infinitescroll @ base.js?1566922720:20
(anonymous) @ app.js?1566922725:569
fire @ jquery-1.9.1.js:1037
fireWith @ jquery-1.9.1.js:1148
done @ jquery-1.9.1.js:8074
callback @ jquery-1.9.1.js:8598
XMLHttpRequest.send (async)
send @ jquery-1.9.1.js:8526
ajax @ jquery-1.9.1.js:7978
jQuery.<computed> @ jquery-1.9.1.js:7614
h @ app.js?1566922725:569
r @ base.js?1566922720:6
setTimeout (async)
(anonymous) @ base.js?1566922720:6
(anonymous) @ app.js?1566922725:568
dispatch @ jquery-1.9.1.js:3074
elemData.handle @ jquery-1.9.1.js:2750
images:1 GET <a href="http://t2.gstatic.com/images?q=tbn:ANd9GcSmm4PqrwsDG62hZ5tQotMVaaI8sYDtD3XdNC1677v8GDkswUmEFZHKAy9Y" rel="nofollow">http://t2.gstatic.com/images?q=tbn:ANd9GcSmm4PqrwsDG62hZ5tQotMVaaI8sYDtD3XdNC1677v8GDkswUmEFZHKAy9Y</a> 404 (Not Found)
Image (async)
buildFragment @ jquery-1.9.1.js:6469
domManip @ jquery-1.9.1.js:6129
append @ jquery-1.9.1.js:5949
callback @ app.js?1566922725:569
a @ base.js?1566922720:20
fire @ jquery-1.9.1.js:1037
fireWith @ jquery-1.9.1.js:1148
done @ jquery-1.9.1.js:8074
callback @ jquery-1.9.1.js:8598
XMLHttpRequest.send (async)
send @ jquery-1.9.1.js:8526
ajax @ jquery-1.9.1.js:7978
jQuery.<computed> @ jquery-1.9.1.js:7614
s @ base.js?1566922720:20
(anonymous) @ base.js?1566922720:20
each @ jquery-1.9.1.js:648
each @ jquery-1.9.1.js:270
t.fn.infinitescroll @ base.js?1566922720:20
(anonymous) @ app.js?1566922725:569
fire @ jquery-1.9.1.js:1037
fireWith @ jquery-1.9.1.js:1148
done @ jquery-1.9.1.js:8074
callback @ jquery-1.9.1.js:8598
XMLHttpRequest.send (async)
send @ jquery-1.9.1.js:8526
ajax @ jquery-1.9.1.js:7978
jQuery.<computed> @ jquery-1.9.1.js:7614
h @ app.js?1566922725:569
r @ base.js?1566922720:6
setTimeout (async)
(anonymous) @ base.js?1566922720:6
(anonymous) @ app.js?1566922725:568
dispatch @ jquery-1.9.1.js:3074
elemData.handle @ jquery-1.9.1.js:2750