Jump to content
View in the app

A better way to browse. Learn more.

RuneSuite RSPS Development

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Ruse

All Ruse snippets belong here.

  1. Started by AllGeniusHost,

    [Hidden Content]

    • 0

      Reputation Points

    • 2 replies
    • 649 views
  2. Started by Flub,

    Hey guys. I see far too many servers using this method to generate percentage chance; [Hidden Content] I made this one to simplify things: [Hidden Content] You need the random double method in order for for the percentage chance to work. Shove them into Misc.java or something. Use like this (This example is generating a 10% chance) [Hidden Content] Noice

    • 0

      Reputation Points

    • 10 replies
    • 2k views
  3. Started by Galaxy,

    The objectivate of this is to take a area and imply water on the ground. This can be done by changing a tiles texture value. I'm releasing because this knowledge could have saved me a lot of time but I couldn't find it anywhere. In ObjectManager search for [Hidden Content] Add this directly after [Hidden Content] In the same method you should find something like this [Hidden Content] Before it, we're going to put this. [Hidden Content]

    • 1

      Reputation Points

    • 12 replies
    • 4.2k views
  4. Hey guys, Today I'm making a guide on how you can encrypt your player(s) passwords! I made this initially for PlatinumPS (Now leaked) Note: We will be saving the encryption key as plaintext in the server files for this tutorial. This is obviously a terrible idea for most applications, however you can adapt the code to store the key somewhere else if you want to. The purpose of doing this is to stop people who gain unauthorised access to your player files from using the passwords nefariously. First step - Creating Encryptor.java in your server files. I have left an example key as you'll see. Change this! Encryptor.java [Hidden C…

    • 0

      Reputation Points

    • 5 replies
    • 1.1k views
  5. Hey guys! I'm here with a little tutorial! The RSPS Scene has some notoriously shady characters. It's almost impossible to perm ban people these days because there's always a way to circumvent the standard IP / Mac bans. Well, today you'll learn how to scan a users IP address and retrieve quality metrics such as; If they're using a VPN If they're on the TOR network If they're using a Proxy A 'Fraud Score' (Based on location, previous suspicious behaviour across the internet etc) And plenty more such as their estimated location, ISP and timezone. So, let's get started! First of all, you're going to need an amazing Jav…

    • 0

      Reputation Points

    • 6 replies
    • 2.4k views
  6. Welcome! Today I'll be showing a SUPER simple way to replace the old, outdated and frankly terrible way that most Ruse servers handle launching URLs. First off, go ahead and create a new packet in your PacketSender (May be called PacketHandler). [Hidden Content] I called mine openURL. (Big brain, I know!) Next, you'll want to head over to your Client Configuration file. Scroll to the bottom, and you'll see a load of seemingly confusing numbers. You can usually find them easily: [Hidden Content] Find one that is currently 0 I have chosen packet 220. Next, do a search in Client.java for: [Hidden Content] E.g. If…

    • 0

      Reputation Points

    • 3 replies
    • 1k views
  7. Started by Sanity,

    I decided not to add degrading armours so basically it's dead code I made a while back. If you wan't to use it enjoy. CombatFactory: Find: /** PHOENIX NECK **/ Add all this above that line. /** DHAROKS DEGRADE START BY JAKE **/ /** DHAROKS HELM **/ else if(t2.getEquipment().getItems()[Equipment.HEAD_SLOT].getId() == 4716) { int recDamage = (int) (damage * 0.001); if (recDamage t2.getConstitution()) recDamage = t2.getConstitution(); attacker.dealDamage(new Hit(recDamage, Hitmask.RED, CombatIcon.DEFLECT)); ItemDegrading.handleItemDegrading(t2, DegradingItem.DHAROKS_HELM); } /** DHAROKS HELM 100 **/ else if(…

    • 0

      Reputation Points

    • 9 replies
    • 2.2k views
  8. Hello, I am new to the scene, I am a little confused as to what to do next. I have downloaded and setup a development environment of Necrotic in IntelliJ, I have it up and running on local host. I would like to start to customizing the server, but do not know where to start. I would like to make it more of a questing server. Since quests is what made me fall in love with RS in the first place. Anyone know where I can find any tutorials on hot to set up a quest? A list of in game command that would be helpful for a developer? How to add custom tiles, models, and UI Art? Anything else that IDK of since I am new to RSPS server development. Please …

    • 0

      Reputation Points

    • 1 reply
    • 651 views
  9. Hey guys, this tut is for a system I created for the now leaked Platinum PS. It is a boss which is triggered when the server hits a global XP target. It then spawns in an instanced area, but the players can leaver / enter smoothly. Adapt as required, this wasn't ever intended to be a tutorial so it's more involved than others I've done. The rewards are currently XP in the chosen boss skill. Players are ranked based on damage caused to the boss. Positions 1-5 are rewarded. They are then shown a crappy interface, but it does the trick I made a new package in src.com.platinum.world.content.skillingboss Then there are two files: …

    • 0

      Reputation Points

    • 11 replies
    • 1.7k views
  10. Started by Sanity,

    Pretty simple if you have a player and cant keep track of appeals/warnings. Let's start off in PointsHandler: /* * Warning Points */ private int warningPoints; public void setwarningPoints(int points, boolean add) { if(add) this.warningPoints += points; else this.warningPoints = points; } public int getWarningPoints() { return this.warningPoints; } public void incrementWarningPoints() { this.warningPoints++; } public void incrementWarningPoints(int amt) { this.warningPoints += amt; } public void setWarningPoints(int warningPoints) { this.warningPoints = warningPoints; } Now we if they have more than 0 warning points they will get …

    • 0

      Reputation Points

    • 5 replies
    • 2.6k views
  11. Started by Sanity,

    Note, if you want to keep a track of clues completed simply create clue scroll points and have them called there. (String 47703) Client (RsInterface) : public static void clueScrolls(TextDrawingArea wid[]) { RSInterface tab = addInterface(47700); addSpriteLoader(47701, 959); addText(47702, "Clues Completed", wid, 1, 16750623, true, true); addText(47703, "-", wid, 2, 0xffffff, true, true); addText(47704, "Dig somewhere in the Edgeville bank", wid, 1, 16750623, true, true); addCloseButton(47705, 18535, 18536); tab.children(5); tab.child(0,…

    • 0

      Reputation Points

    • 10 replies
    • 2.3k views
  12. Started by Flub,

    Hey guys.. Had the need to re-write SlayerTasks.java for someone, figured I'd share it. It includes a kill requirement - if your server doesn't have that, just set the KC requirement to 0 or properly remove it if you know what you're doing [Hidden Content] Adapted Slayer.java assignTask() Method to use the new data.. This is lazy work since I just changed where it gets the info from [Hidden Content]

    • 0

      Reputation Points

    • 11 replies
    • 2.4k views
  13. Started by Flub,

    I always forget about this tip. In Client.java, search for: [Hidden Content] Change the 5 to around 35-40. [Hidden Content] Try to login / open an interface before and after - It's a huge difference! Essentially the client was limited to just 5 packets per tick, now it's 35

    • 0

      Reputation Points

    • 10 replies
    • 1.8k views
  14. Started by Pat,

    [Hidden Content] RsApplet- What this code is doing? The VK_ESCAPE is in the name.. Closes the interfaces with ESC Here i have listed what tab numbers equal to what tab you wish to use for F keys [hot keys] tab in rsapplet.java 3 = inventory tab F1 4 = weapon slots F2 5 = prayer tab F3 6 = Mage book F4 0 = attack style F5 1 = skills tab F6 2 = quest tab F7 7 = clan chat F8 8 = friends list tab F9 9 = ignore list tab F10 10 = log out tab F11 11 = settings tab F12 12 = charactor animations 13 = summoning tab 14 = achievements tab 15 = summoning tab 16 = random inventory If you wish for the ESc key to open …

    • 0

      Reputation Points

    • 5 replies
    • 2.7k views
  15. Hi guys, Here is a command I created to discover what NPC's drop an item. Main code (I put mine inside ItemDefinition so that I can use ItemDefinition.whatDrops(player, name))``` [Hidden Content] Command code: [Hidden Content] Usage: ::whatdrops Rune Platebody

    • 0

      Reputation Points

    • 8 replies
    • 1.6k views
  16. Started by Sanity,

    I've used Ruse a lot and never seen anything even similar to this. OT: int recDamage = (int) (damage * 0.001); if (recDamage t2.getConstitution()) recDamage = t2.getConstitution(); attacker.dealDamage(new Hit(recDamage, Hitmask.RED, CombatIcon.DEFLECT)); From the recoil effect lol. It has nothing to do with barrows degrading. You're making your Dharok's return damage to the attacker.. You also have so much repetetive code. You could do it as simple as this: DegradingItem: public static Optional forItem(int item) { for(DegradingItem d : DegradingItem.values()) { if(d.deg == item || d.nonDeg == item) { return Optional.of(…

    • 0

      Reputation Points

    • 5 replies
    • 1.9k views
  17. Started by Flub,

    Hey everyone. This is a better way to select a random entry from an enum An example of an enum group is: [Hidden Content] Enums are incredibly useful for storing multiple types of data. You'll see them used in a load of places! Now, the usual way to select a random entry from your enum list would be; [Hidden Content] Of course - this does work. However, why not improve it! Here is a new method for you.. I've added mine into Misc.java along with my randomItem method! [Hidden Content] Now, lets select a entry from our enum using this new method! (If added in Misc.java) [Hidden Content] How much cleaner is that! You **m…

    • 0

      Reputation Points

    • 2 replies
    • 822 views
  18. Started by Flub,

    Hey guys, whipped this up quickly. Make sure to add my previous snippets too. Genie.java [Hidden Content] Player.java [Hidden Content] NPCOptionPacketListener.java First Click: [Hidden Content] Second Click: [Hidden Content] SkillManager.java Anywhere in the addExperience method: [Hidden Content]

    • 0

      Reputation Points

    • 7 replies
    • 1.3k views
  19. Hey guys, commands below.. adapt as required for other sites! [Hidden Content] If you'd like the same openURL method, checkout my other tut:

    • 0

      Reputation Points

    • 1 reply
    • 603 views
  20. Hey everyone. I bet all of you have come across the need to select a random item from a group before. You'll see this in many areas of your server. Most prominently in your mystery / donator box files, raid rewards and crystal chest too! An example of an item group is: [Hidden Content] Now, we have a group that includes two items. The most common way of selecting a random reward (You'll see this EVERYWHERE) is; [Hidden Content] This will work. However, it's ugly! There are always ways to improve. Here is a new method for you.. I've added mine into Misc.java. [Hidden Content] Now, lets select a random item from our group using this ne…

    • 0

      Reputation Points

    • 3 replies
    • 1k views
  21. I've always liked being able to reference an item in code via static ints. I have a file named Items.java, and I simply reference Items.RUNE_ARROW for example. Well if you want this too, I made this to generate them. [Hidden Content] Example of the ints generated: [Hidden Content] Thanks boiz

    • 0

      Reputation Points

    • 2 replies
    • 827 views
  22. Started by Sanity,

    I believe this was released by someone else for PI, I've had it forever so credits to whoever released it, didn't take long to convert. Make this class wherever you want. package com.arlania.engine; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; import com.arlania.util.Stopwatch; public class CharacterBackup { private static final int TIME = 28800000; //8 hours public static Stopwatch timer = new Stopwatch().reset(); public CharacterBackup(…

    • 0

      Reputation Points

    • 11 replies
    • 2.5k views

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.