Skip to content
View PakL's full-sized avatar

Block or report PakL

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don't include any personal information such as legal names or email addresses. Markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse

Pinned Loading

  1. ProcessAffinityWatcher ProcessAffinityWatcher Public

    Watch processes and automatically set processor affinity.

    C# 1

  2. Nightbot command to roll dice Nightbot command to roll dice
    1
    Simple Nightbot command to roll any number of any kind of dice
    2
    
                  
    3
    ```
    4
    $(eval var i=parseInt,d=[],e='$(provider)'=='twitch'?'melziiD20':'🎲20',j=0,l,m='$(query)'.match(/^(([0-9]+)\s+)?(([0-9]+)?d([0-9]+)|([0-9]+))$/)??{},c=i(m[2]??1),n=i(m[4]??1),s=i(m[5]??m[6]??20);c=c>20?20:(c<1||!c?1:c);n=(n<1?1:n);s=(s<1?1:s);for(;j<c;j+=1){d.push(Math.round(n*(s-1)*Math.random())+n)}r=`$(user) rolled ${d.join(', ')} with ${n<2?'a ':n+'×'}🎲`+s;l=r.lastIndexOf(',');(l<0?r:r.substr(0,l)+' and'+r.substr(l+1)).replace(/( |🎲)20(,| |$)/g,` ${ e } $2`))
    5
    ```
  3. [Firebot] Raid Message Generator: Qu... [Firebot] Raid Message Generator: Quickly generate a raid message for both your subscribers and non-subscribers
    1
    {"name":"Raid Message Generator","description":"Quickly generate a raid message for both your subscribers and non-subscribers.\n\nTo make everything work you need to edit the created Raidgen preset effect list.\nYou will find two custom variables:\n* `emoteMap`<br>This maps your subscriber emotes to a global emotes. You don't have to map every emote, but any emote that isn't mapped will be replaced by the TombRaid emote. To map an emote enter the name of *your* emote and the emote it should be replaced with right after, seperated by a white-space character (e.g. space, new line, tab). I like to put spaces between the map emotes and new lines between each pair for best readability. When you go to edit it you'll see an example configuration with some Melzii emotes. It looks like this:\n  ```\n  melziiSpicyLove VirtualHug\n  melziiFeelsWowzii BegWan\n  ```\n* `emotePrefix`<br>This is your emote prefix. Any emote that is not in the emote map and does not start with your emote prefix will be assumed globally accessible and not be changed for the non-sub raid message. In case of Melzii this would be `melzii`.\n\nFind me here: [pakl.dev](https://pakl.dev) or [lechepicante.rocks](https://lechepicante.rocks)","version":1,"author":"PakL","website":"https://pakl.dev","components":{"commands":[{"active":true,"simple":false,"sendCooldownMessage":true,"cooldownMessage":"This command is still on cooldown for: {timeLeft}","cooldown":{},"effects":{"id":"239aa0be-69c9-4a86-a595-654fa4e9ed40","list":[{"id":"1b7fdac4-63e4-43c0-a224-719727e57a56","type":"firebot:run-effect-list","active":true,"listType":"preset","presetListArgs":{"messageWOEmotes":"$chatMessageTextOnly[true]","messageEmotes":"$chatMessageEmoteNames"},"effectList":{"list":[],"id":"1816beaf-4cf0-4c2e-be84-aa8f4d5f1c66"},"presetListId":"ead2c173-8750-4dd3-81bb-2690a5497179","percentWeight":null}]},"restrictionData":{"restrictions":[{"id":"d7c051e8-49b5-4f9e-a450-82fd08e059ed","type":"firebot:permissions","mode":"roles","roleIds":["broadcaster"],"ranks":[]}],"mode":"all","sendFailMessage":true,"failMessage":"Sorry @{user}, you cannot use this command because: {reason}","sendAsReply":false},"aliases":[],"sortTags":[],"treatQuotedTextAsSingleArg":false,"allowTriggerBySharedChat":"inherit","trigger":"!raidgen","id":"eab9d332-7c56-4650-8ebb-24816469b974","createdBy":"pakl","createdAt":"2025-12-03T18:06:28.525+01:00","type":"custom","lastEditBy":"pakl","lastEditAt":"2025-12-03T19:21:53.815+01:00","hidden":true}],"counters":[],"currencies":[],"effectQueues":[],"events":[],"eventGroups":[],"hotkeys":[],"presetEffectLists":[{"name":"Raidgen","effects":{"list":[{"id":"53158cbd-7c33-4cf5-9ec5-76b85e412fc2","type":"firebot:customvariable","active":true,"ttl":0,"name":"emoteMap","variableData":"melziiSpicyLove VirtualHug\nmelziiFeelsWowzii BegWan","percentWeight":null},{"id":"e8286929-ea50-449a-9c18-a7ba1ddd7568","type":"firebot:customvariable","active":true,"ttl":0,"name":"emotePrefix","variableData":"melzii","percentWeight":null},{"id":"c56cc255-fbf2-48c6-8a18-2d48e09bd577","type":"firebot:eval-js","active":true,"parameters":["$#messageWOEmotes","$#messageEmotes","$customVariable[emoteMap]","$customVariable[emotePrefix]"],"code":"const splits = parameters[0].match(/\"(.*?)\"|(\\S+)/g);\n\nconst m = [];\nconst e = typeof(parameters[1]) === \"string\" ? JSON.parse(parameters[1]) : parameters[1];\n\nif (splits) {\n    for (let i = 0; i < splits.length; i++) {\n        splits[i] = splits[i].replace(/^\"(.*)\"$/, '$1')\n    }\n    m.push(...splits);\n}\n\nconst emoteMap = {};\nconst emSplits = parameters[2].match(/(\\S+)/g);\nif (emSplits && emSplits.length % 2 === 0) {\n    for (let i = 0; i < emSplits.length; i = i+2) {\n        emoteMap[emSplits[i]] = emSplits[i+1];\n    }\n}\n\nif (Object.keys(emoteMap).length <= 0) {\n    return [\"Invalid emote map\", null, null];\n}\n\nif (m.length <= 0) {\n    return [\"Empty message\", null, null];\n}\n\nif (e.length <= 0) {\n    let emotes = Object.keys(emoteMap);\n    for (let i = 0; i < 3; i++)\n        e.push(emotes[Math.floor(Math.random() * emotes.length)]);\n}\n\nfunction exchangeEmote(e) {\n    if (typeof (emoteMap[e]) === 'string') {\n        return emoteMap[e];\n    } else if (!e.startsWith(parameters[3])) {\n        return e;\n    }\n    return \"TombRaid\";\n}\n\nlet rmsg = '', rmsgsub = '';\nrmsg += exchangeEmote(e[0]);\nrmsgsub += e[0];\n\nlet emoterotation = 1;\nfor (let i = 0; i < 5; i++) {\n    let hypeparts = [], hypesubparts = [];\n    for (let j = 0; j < m.length; j++) {\n        let text = m[j];\n        if (text.length < 4 && (j + 1) < m.length) {\n            j++;\n            text += ' ' + m[j];\n        }\n        hypeparts.push(...[text, exchangeEmote(e[emoterotation])]);\n        hypesubparts.push(...[text, e[emoterotation]]);\n        emoterotation++;\n        if (emoterotation >= e.length) emoterotation = 0;\n    }\n    if ((rmsg + ' ' + hypeparts.join(' ')).length > 400 || (rmsgsub + ' ' + hypesubparts.join(' ')).length > 400) {\n        break;\n    } else {\n        rmsg = rmsg + ' ' + hypeparts.join(' ');\n        rmsgsub = rmsgsub + ' ' + hypesubparts.join(' ');\n    }\n}\n\nreturn [\"\", rmsg, rmsgsub];","percentWeight":null,"outputNames":{"jsResult":"genResult"}},{"id":"2416a7f2-a0ed-447f-8fd7-89f97629063a","type":"firebot:conditional-effects","active":true,"ifs":[{"conditionData":{"mode":"exclusive","conditions":[{"type":"firebot:custom","comparisonType":"is not","value":null,"leftSideValue":"$arrayElement[$effectOutput[genResult], 0]","rightSideValue":""}]},"effectData":{"list":[{"id":"9603df23-f883-466c-9ff8-7733ea8b4539","type":"firebot:chat","active":true,"chatter":"Streamer","sendAsReply":false,"message":"Raid message generation failed: $arrayElement[$effectOutput[genResult], 0]","percentWeight":null}],"id":"4938bd8d-8dd4-4231-bd3b-d927b4d88354"}}],"otherwiseEffectData":{"list":[{"id":"0a87506b-8647-48c0-be2e-b2b140abfb60","type":"firebot:chat","active":true,"chatter":"Streamer","message":"Subscribers, copy this:","percentWeight":null,"effectLabel":"Subscribers, copy this:"},{"id":"4a41386b-4b6c-4fcc-b569-e7268dde4fe9","type":"firebot:chat","active":true,"chatter":"Streamer","message":"$arrayElement[$effectOutput[genResult], 2]","percentWeight":null},{"id":"8f035d21-ec6d-4896-b529-6f05a1d822f0","type":"firebot:chat","active":true,"chatter":"Streamer","message":"Non-subs, copy this:","percentWeight":null,"effectLabel":"Non-subs, copy this:"},{"id":"a02f2982-9717-4d87-b938-5009aab73990","type":"firebot:chat","active":true,"chatter":"Streamer","message":"$arrayElement[$effectOutput[genResult], 1]","percentWeight":null}],"id":"7b415647-de46-420c-92c0-50e8d189f37b"},"percentWeight":null}],"id":"2f81cbcd-4634-433b-ad26-89bad2748de2"},"args":[{"name":"messageWOEmotes"},{"name":"messageEmotes"}],"sortTags":[],"id":"ead2c173-8750-4dd3-81bb-2690a5497179"}],"timers":[],"scheduledTasks":[],"variableMacros":[],"viewerRoles":[],"viewerRankLadders":[],"quickActions":[]},"requireCurrency":false,"importQuestions":[]}
  4. SkyrimIntegrationBridge SkyrimIntegrationBridge Public

    Command line application accompanying my Integration Bridge mode for Skyrim

    Rust 2

  5. savegame_manager savegame_manager Public

    Savegame manager (primarily meant for DD2)

    Rust 2

  6. Installer batch for Star Wars: Behin... Installer batch for Star Wars: Behind The Magic
    1
    # Star Wars: Behind The Magic - Installer Batch
    2
    
                  
    3
    Star Wars: Behind The Magic is a multimedia CD-ROM released in 1998 for Windows 95/98. Due to the nature of the installer, the software cannot be installed on a modern Windows even though the rest of the software itself runs fine.
    4
    
                  
    5
    The batch below will copy all necessary files and create all necessary registry entries for the software to function. It will also create two DXWnd profiles you can import to run it in a borderless window.